Se connecter avec
S'enregistrer | Connectez-vous

Macro permettant de rechercher des mots dans une cellule

Dernière réponse : dans Programmation

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 :

  1. Dim c As Object
  2. Set c = Range("D1").Find("ECAT")
  3. 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 ?
Lassé par la pub ? Créez un compte
Expert Programmation

: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 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...
[/code]
Expert Programmation

Citation :
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 ?

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

Merci beaucoup. Il me reste unpetit probleme :

  1. Dim c As Range
  2. Dim k as integer
  3. For Each c In Range("D1:D7")
  4. For k = 1 to 7
  5. If c.Find("ECAT") Is Nothing Then Cells(k, 20) = "" Else: Cells(k, 20) = "ECAT"
  6. Next
  7. 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
Expert Programmation

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
c.Row

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: 

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
Lassé par la pub ? Créez un compte