Macro permettant de rechercher des mots dans une cellule

  • Auteur de la discussion francois29
  • Date de début

francois29

Nouveau membre
Bonjour,

J'ai un petit problème. Je cherche a faire une macro qui me permette de chercher un mot dans une cellule et qui si ce mot est présent m'écrive "***" dans une autre cellule. J'arrive a la faire marcher pour une cellule, pour une range entiere, mais pas cellule par cellule.

Pour une cellule, cela donne :

Code:
Dim c As Object
Set c = Range("D1").Find("ECAT")
If c Is Nothing Then Cells(1, 20) = "" Else Cells(1, 20) = "ECAT"


Pourriez vous m'aider. Merci

Dsl j'avais pas vu. Est-ce que ca va mieux comme ca ?
 

zeb

Modérateur
[strike]:lol:

Tu es de bonne volonté, il n'y a pas a dire mais là c'est la première fois qu'on me la fait. Vire-moi code: , 1. , 2. , 3. et mets [/code] et
Code:
 à la fin et au début de ton code la mise en forme se fera automatiquement.

En attendant je regarde ton problème...[/strike]
 

zeb

Modérateur
J'arrive a la faire marcher pour une cellule, pour une range entiere, mais pas cellule par cellule.

Je ne comprends pas ce que tu veux dire. Comment fais-tu pour une range entière, que veux-tu dire par cellule par cellule ?
 

francois29

Nouveau membre
En fait, j aimerais que le code précédent, qui fonctionne pour la cellule D1, puisse fonctionner sur l ensemble des cellules de la colonne D. C est a dire que pour chaque cellule de la colonne D, la macro regarde si "ECAT" est dans la celulle et si oui m'écrive "ECAT" une cellule de la meme ligne mais d une autre colonne
 

zeb

Modérateur
Code:
Dim c As Range
For Each c In Range( ... )
  If c.Find( ... ) Is Nothing Then
    ...
  Else
    ...
  End If
Next
A toi de remplir les ... ;)
 

francois29

Nouveau membre
Merci beaucoup. Il me reste unpetit probleme :

Code:
Dim c As Range
  Dim k as integer
  For Each c In Range("D1:D7")
  For k = 1 to 7
    If c.Find("ECAT") Is Nothing Then Cells(k, 20) = "" Else: Cells(k, 20) = "ECAT"
  Next
Next

je voudrai que pour chaque cellule de la range, la macro me mette soit "" soit "***" dans une cellule de la meme ligne mais d une colonne différente. or en l état, le code me met "***" sans toutes les cellules correspondantes si jamais le mot recherché est contenu dans une seule cellule de la range
 

zeb

Modérateur
M'enfin, as-tu compris ce que je t'ai proposé ?

Fais-moi le plaisir de comprendre le For Each (RTFM), et donc de virer ta boucle For k.

c représente une cellule. La valeur de sa ligne est [fixed]c.Row[/fixed]
 

zun

Nouveau membre
Bonjour, c'est a peu pres la meme chose dont j'aurai besoin sauf que c'est pas un mot mais une serie de mots clefs...
je souhaiterais effectuer dans UNE colonne contenant une serie de phrases (chaque cellule en contenant UNE) une recherche parmi une serie de mots clefs contenus dans une autre colonne (chaque cellule contenant un mot clef).
Ainsi, il faudrait que pour chaque ligne contenant une phrase la macro cherche si chacun des mots clefs est present.
Si un ou plusieurs mots clefs sont presents, il faudrait qu'il y ait marquer dans une troisieme colonne OK sinon PAS OK lol
Je vous remercie beaucoup!!!!!
:hello:
 

zun

Nouveau membre
En fait j'etais plus parti dans une macro du style :
Sub test()
Dim c As Range
For Each c In Range("A2:A13000" )
If c.Find(c.Value, Column + 1) Is Nothing Then
Cells(c.Row, Column + 3) = "PAS OK"
Else
Cells(c.Row, Column + 3) = "OK"
End If
Next
End Sub
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 136
Messages
6 718 119
Membres
1 586 397
Dernier membre
Chachabidou
Partager cette page
Haut