Private Sub recherche_1_colonne_Click() ' recherche la valeur d'une cellule sur un tableur avec boucle sur plusieurs colonnes avec match (on aurait pu faire aussi avec find ou un tableau array
Dim Cible 'valeur recherchŽe dans le tableur
Dim Lignearray As Integer 'ligne du range dans lequel la recherche est effectuŽe
Dim Rng As Range 'tableau dans lequel on effectue la recherche, redimensionnŽ ˆ chaque boucle pour ne pas tomber toujours sur la premire occurence trouvŽe +++ (c'est a l'idŽe de cette fonction)
Dim Ligne 'n¡ de Ligne dans laquelle la valeur cherchŽe est trouvŽe
Dim L As Integer 'nombre de lignes dans le tableur prŽcŽdant chaque boucle
Dim n As Integer
Dim Tabl 'partie du tableur dans lequel on veut effectuer la recherche
Dim feuil1 As Worksheet
Dim dercol
Dim tablo1(10, 10)
Dim i As Integer
Dim j As Integer
Dim str As String
str = ""
Set Rng = Range("h21:H29")
Rng.Select 'pour controle uniquement
Cible = Range("H33")
MsgBox (Cible) 'pour controle uniquement
'extraire la valeur dans le tableur (feuille TEMPO)
'MsgBox (Range("H33").Value)
'recherche une valeur dans le tableur (ici colonne H par la fonction match (+++ !!!) et donner la ligne correspondante (ne fonctionne pas si doublons, bien entendu: rend la premire occurence trouvŽe par la fonction match (je crois de la ligne 2 ˆ la fin du tableur)
n = 0
L = 20 ' le tableau de recherche commence ˆ la ligne 21 du tableur)
With Application.WorksheetFunction
For j = 8 To 8
'Do
'On Error GoTo Finish
tablo1(0, j - 8) = WorksheetFunction.CountIf(Rng, Cible)
For i = 21 To 29
If Cells(i, j) = Cible Then
tablo1(i - 20, j - 8) = i
str = str & ", " & i
End If
Next i
'Lignearray = Application.Match(Cible, Rng, 0)
'Ligne = Lignearray + L
'MsgBox (Lignearray) 'pour controle uniquement
MsgBox ("La valeur " & Cible & " trouvŽe dans les lignes: " & str & "Cette valeur a ŽtŽ trouvŽe " & tablo1(0, j - 8) & "fois dans la colonne.")
'Set Rng = Rng.Resize(Rng.Rows.Count - Lignearray, 1).Offset(Lignearray, 0)
'Rng.Select
'n = n + 1
'L = Ligne
'Loop
Next j
End With
'Finish:
' Me.ListBox1.AddItem = Cells(Ligne, 6) 'colonne F
'Me.TxtB_Date_MEC = Cells(x, Range("Date_MEC").Column) ' ici fonctionne avec des colonne nommŽes dynamiquement (("Date_MEC")
End Sub