A
ALKER
Guest
Bonjour tt le monde,
J'ai créé une macro qui fait une recherche verticale sur deux tableaux de deux feuilles.
Mon problème est que dans les tableaux j'ai énormément de ligne, presque le maximum sur Excel 2003, donc le programme peut mettre plus de deux heures pour finir.
J'aimerai savoir si on peut l'optimiser le programme ? Je pense que c'est les deux boucle For qui ralentie le programme. Comme je ne m'y connais pas en programmation je ne sais pas quoi utiliser.La macro est ci-dessous.
Avez vous des idées SVP?
Merci
Sub rechv()
Worksheets("Default").Activate
Dim ligne1 As Long
ligne1 = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
Dim ligne2 As Long
ligne2 = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
For i = 2 To ligne1
For j = 2 To ligne2
If Cells(i, 1) = Worksheets("Feuil2").Cells(j, 1) Then
Cells(i, 2) = Worksheets("Feuil2").Cells(j, 10)
Exit For
End If
Next j
Next i
End Sub
J'ai créé une macro qui fait une recherche verticale sur deux tableaux de deux feuilles.
Mon problème est que dans les tableaux j'ai énormément de ligne, presque le maximum sur Excel 2003, donc le programme peut mettre plus de deux heures pour finir.
J'aimerai savoir si on peut l'optimiser le programme ? Je pense que c'est les deux boucle For qui ralentie le programme. Comme je ne m'y connais pas en programmation je ne sais pas quoi utiliser.La macro est ci-dessous.
Avez vous des idées SVP?
Merci
Sub rechv()
Worksheets("Default").Activate
Dim ligne1 As Long
ligne1 = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
Dim ligne2 As Long
ligne2 = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
For i = 2 To ligne1
For j = 2 To ligne2
If Cells(i, 1) = Worksheets("Feuil2").Cells(j, 1) Then
Cells(i, 2) = Worksheets("Feuil2").Cells(j, 10)
Exit For
End If
Next j
Next i
End Sub