Excel : besoin d'aide pour utilisation FindAll
Résolu
Yago
-
Yago -
Yago -
Bonjour,
J'utilise un tableau excel pour répertorier du matériel qui se tient sur 2 pages.
La 1ère feuille est ma page d'accueil et ma seconde feuille est ma base de donnée.
J'aimerai utiliser la fonction FindAll pour trouver toutes les lignes de ma feuille 2, colonne C, qui correspondent au mot qui est dans la cellule "F12" de ma première feuille (comme un Ctrl + F, car j'ai plusieurs matériel avec la même désignation).
J'arrive à faire une recherche simple avec la fonction Find, mais je bloque avec FindAll (mes compétences et mon niveau de connaissance se limitent à Find : j'ai mis une journée entière pour arriver au résultat attendu, c'est vous dire !!!).
Merci d'avance pour votre aide et bonne journée à tous.
J'utilise un tableau excel pour répertorier du matériel qui se tient sur 2 pages.
La 1ère feuille est ma page d'accueil et ma seconde feuille est ma base de donnée.
J'aimerai utiliser la fonction FindAll pour trouver toutes les lignes de ma feuille 2, colonne C, qui correspondent au mot qui est dans la cellule "F12" de ma première feuille (comme un Ctrl + F, car j'ai plusieurs matériel avec la même désignation).
J'arrive à faire une recherche simple avec la fonction Find, mais je bloque avec FindAll (mes compétences et mon niveau de connaissance se limitent à Find : j'ai mis une journée entière pour arriver au résultat attendu, c'est vous dire !!!).
Merci d'avance pour votre aide et bonne journée à tous.
1 réponse
-
Bonjour,
Sur quoi bloques tu exactement ?
Quel code as tu écris ?
-
Sachant que les résultats trouvés (du moins les numéros des lignes dans lesquelles ont été trouvé les résultats) sont dans la variable (de type array) arMatches
Et donc, voila tout ce qu'il y a à savoir sur la manipulation des "array" en VBA : https://silkyroad.developpez.com/vba/tableaux/- Problème résolu.
Finalement je suis passé par une autre solution (trouvée ici : http://dj.joss.free.fr/occurence.htm) et que j'ai adaptée à mon besoin comme suit :
Sub RechMatparDesign()
valeur = Sheets("Formulaires").Range("F12")
Sheets("Outils global").Activate
Set SearchRange = Columns(3)
Set trouvé1 = Cells.Find(What:=valeur)
If Not trouvé1 Is Nothing Then
trouvé1.Activate
étiq:
If MsgBox("Suivant ?", 4) = vbNo Then Exit Sub
Set trouvé2 = Cells.FindNext(After:=ActiveCell)
If trouvé2.Columns <> trouvé1.Column Or trouvé2.Row <> trouvé1.Row Then
trouvé2.Activate
GoTo étiq
End If
End If
End Sub
Il me reste à affecter le bouton de recherche à cette macro.
Merci à Jordane45 pour son aide et pour son lien qui contient une foule d'informations précieuses (il va au moins me falloir une année pour tenter de tout comprendre et une autre pour m'en remettre...)
-