Macro recherche plusieurs critères cellule

Résolu
mickysor -  
 mickysor -
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

8 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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
3
mickysor
 
Bonjour,
Comment as tu fait ce fitre dynamique c'est exactement ce que je voulais!!!
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

En vba, clic-droit sur le nom de l'onglet de la feuille et 'visualiser le code...'
eric
0
melanie1324
 
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
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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
0
melanie1324
 
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
> 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
0
mickysor
 
Bonsoir,désolé mélanie ta macro ne fonctionne pas sur excel 2003
0
mickysor
 
peu être est t'il possible de faire ce type de recherche avec une formule?
0
Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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 !
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
bonjour mike-31

c'est ce que j'ai compris, c'est pour ça que j'ai propose instr dans le post 2

bonne suite
0
mickysor
 
merci je vais essayer
0
mickysor
 
j'ai rajoute le code mais je pense qu'il faut créer un bouton specifique recherche
0
mickysor
 
j'ai reussi!! vous pouvez le mettre en resolu.je ne sais pas comment faire sur ces post
0