Sub Bouton2_Cliquer()
t = Timer
'je récupère ce qu'il faut faire dans la feuille instruction
With Application: .ScreenUpdating = False: .Calculation = xlManual: .EnableEvents = False: End With
Dim tablo(), tablo2(), A&, I&
With Sheets("instruction")
ligne_instruction = 2
champ_a = .Cells(ligne_instruction, 1)
operateur = .Cells(ligne_instruction, 2)
champ_b = .Cells(ligne_instruction, 3)
End With
With Sheets("data")
'je cherche où se trouve ces champs dans la ligne 10 qui contient les entêtes
col_1 = .Range("C10:Q10").Find(champ_a, LookAt:=xlWhole).Column
col_2 = .Range("C10:Q10").Find(champ_b, LookAt:=xlWhole).Column
'on recupère le tableau complet dans la variable tablo
tablo = .Range(.Cells(11, col_1), .Cells(Rows.Count, col_2).End(xlUp)).Value
End With
'je passe en revue les données dans la variable tableau et si la condition est bonne
'je stocke l'information dans une nouvelle ligne du tablo2
ReDim tablo2(1 To UBound(tablo), 1 To 3)
For I = 1 To UBound(tablo)
If tablo(I, col_1 - (col_1 - 1)) > tablo(I, col_2 - (col_1 - 1)) Then
A = A + 1
tablo2(A, 1) = Now
tablo2(A, 2) = I + 10
tablo2(A, 3) = champ_a & " " & operateur & " " & champ_b
End If
Next
'et enfin on colle le tablo2 dans la feulle resultat
With Sheets("resultat")
.Cells.ClearContents
.Select
if A > 0 then .Cells(1, 1).Resize(A, 3) = tablo2
End With
Cells(1, 7) = Timer - t
End Sub