'Explication des variables 'ChercheX : Valeur à chercher 'Nom_Feuil : Nom de la feuille où chercher 'Ma_plage : Plage de recherche (Range) 'arTemp : Tableau qui reçoit le resultat de la recherche ' bFound : TRUE si des resultats sont trouvés. '--------------------------------------------------------------- bFound = FindAll(ChercheX, Sheets(Nom_Feuil), ma_plage, arTemp()) '--------------------------------------------------------------- If bFound = True Then Debug.Print "Nb occurences : " & UBound(arTemp) 'Nb de valeurs dans le tableau For X = 1 To UBound(arTemp) 'boucle pour parcourir le tableau. Debug.Print "La " & x & " valeur du tableau est : " & arTemp(X) ' lecture du tableau Next End If
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row 3 And Target.Column 3 Then Application.Run "Alim_Rech" End If End Sub
Sub Alim_Rech() Dim myval myval = Sheets(2).Cells(3, 3).Value ' DEFINITION DU CRITERE DE RECHERCHE '1ère etape : effacer l'ancienne liste d'occurences rf2 = Sheets(2).Cells(65536, 1).End(xlUp).Row 'recuperation de la derniere cellule non vide de la colonne A If rf2 > 3 Then 'si > à 3 il y a une liste donc on efface Range(Sheets(2).Cells(4, 1), Sheets(2).Cells(rf2, 3)).ClearContents End If rf1 = Sheets(1).Cells(65536, 1).End(xlUp).Row 'delimite la BDD occ = 4 ' initialise la 1ère ligne de la liste des occurence de la 2nde feuille Count = 0 ' initialise le nombre d'occurence trouvé For Each cell In Range(Sheets(1).Cells(2, 3), Sheets(1).Cells(rf1, 3)) 'BDD à partir de la ligne 2, la valeur recherchée se trouve dans la colonne C If cell.Value = myval Then 'on trouve une occurence Count = Count + 1 'ajout au nombre d'occurence Sheets(2).Cells(occ, 1).Value = cell.Value Sheets(2).Cells(occ, 2).Value = cell.Offset(0, 1).Value Sheets(2).Cells(occ, 3).Value = cell.Offset(0, 2).Value 'on alimente la feuil2 occ = occ + 1 'ligne suivante End If Next cell MsgBox ("Votre recherche pour " & myval & " a générer " & Count & " réponses positives.") End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question