Posez votre question Signaler

Macro recherche plusieurs critères cellule [Résolu]

mickysor - Dernière réponse le 5 févr. 2011 à 12:47
Bonjour,
Dans la colonne a:a Je souhaiterais créer une macro de recherche.le problême c'est que je souhaiterais pouvoir faire une recherche multi critères.par exemple dans la cellule a3 il y a italie rome 133.je souhaiterais pouvoir rechercher "italie 133" par exemple.
Merci pour votre aide
Lire la suite 

Macro recherche plusieurs critères cellule »

14 réponses
Réponse
+1
moins plus
Bonsoir,

Tu ne précises pas si tu veux les références ou un filtre...
Une proposition de filtre dynamique :
Filtre multiple.xls

eric
mickysor - 5 févr. 2011 à 11:40
Bonjour,
Comment as tu fait ce fitre dynamique c'est exactement ce que je voulais!!!
eriiic- 5 févr. 2011 à 11:51
Bonjour,

En vba, clic-droit sur le nom de l'onglet de la feuille et 'visualiser le code...'
eric
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

je sais pas si c'est exactement ce que tu veux mais voila une piste :

un conseil appuie sur F8 (ca déclenche le code ligne par ligne) et pose ta souris sans cliquer sur cellule pour bien comprendre ce que cela fait

Sub x()

texte = InputBox("Merci d'indiquer le texte recherché :", "texte recherché") ' permet à l'utilisateur de rentrer ce que tu cherches
If texte <> "" Then 'si tu n'as rien rentré, la macro s'arrête
i = 2 ' commence à la 2ème ligne
Do While Cells(i, 1) <> "" 'la boucle tourne jusqu'à ce que tu n'ais rien dans une cellule de la colonne A
nbtexte = Len(texte) 'nbtexte = nbre de caractères du texte recheché
cellule = Cells(i, 1) 'cellule est égale à la valeur contenue dans ta cellule
Do While Len(cellule) > 0
If UCase(Left(cellule, nbtexte)) = UCase(texte) Then
'mets ici ce que ca doit faire lorsque tu as trouvé ton texte
cellule = "a"
End If
cellule = Right(cellule, Len(cellule) - 1)
Loop
i = i + 1
Loop
End If


End Sub
Ajouter un commentaire
Réponse
+0
moins plus
bonjour

upeut etre quelque chose comme ça

For li = 21 To 24
  a = InStr(1, Cells(li, 1), "Italie")
  b = InStr(1, Cells(li, 1), "133")
  If a * b > 0 Then
   MsgBox ("trouvé" & " - " & li)
 End If
Next li


RQ. attention a la casse, sinon Ucase transforme en majuscule

bonne suite
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

mais la fonction ucase permet de transformer en majuscule, comme ca ca permet de comparer deux textes identiques et pas de problème d'accent.

de plus, ton code ne permet la recherche que de italie 133 alors que le mien, tu peux rechercher n'importe quel texte.
Ajouter un commentaire
Réponse
+0
moins plus
> melanie

tu as tout a fait raison, je voulais suggerer une idée pour repondre simplement a la question posée
mais
le texte cherché est une partie du contenu de la cellule, donc instr s'impose.

bonne journée
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,désolé mélanie ta macro ne fonctionne pas sur excel 2003
Ajouter un commentaire
Réponse
+0
moins plus
peu être est t'il possible de faire ce type de recherche avec une formule?
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

dans la cellule tu as ce type de donnée, exemple en A1 tu as Italie Rome 133 !

si oui, et si je comprends bien dans la colonne A tu as plusieurs données identiques Italie Rome 133 ou sont elles différentes comme Italie 133 !
mickysor - 5 févr. 2011 à 12:25
merci je vais essayer
mickysor - 5 févr. 2011 à 12:30
j'ai rajoute le code mais je pense qu'il faut créer un bouton specifique recherche
mickysor - 5 févr. 2011 à 12:47
j'ai reussi!! vous pouvez le mettre en resolu.je ne sais pas comment faire sur ces post
Ajouter un commentaire
Ce document intitulé « Macro recherche plusieurs critères cellule » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?