Excel : besoin d'aide pour utilisation FindAll

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

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,
    Sur quoi bloques tu exactement ?
    Quel code as tu écris ?

    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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/
      0
      1. Yago > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci de ton aide Jordane45, je regarde le tout demain au travail et je revoie les informations, (fichier avec code) si je n'arrive pas à trouver la solution (pour info j'écris du Québec, heure + 6).
        0
      2. Yago > Yago
         
        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...)
        0