Bnojour à tous,

Dans une autre discution j'avai demandé des solutions pour accélérer l'exécution de ma macro qui traitait plusieurs 1000 de lignes et on m'avait fait deux type de solution la première je l'ai mis en place et celàs fonctionne, mais apparament la deusième solution dvrait être plus rapide.

Mon problème est que je débute en VBA et je ne comprend pas tous. Est ce que quelqu'un pourais m'expliquer le fonctionnement de cette macro qui m'avais été faite en exemple?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub test()
 
'Note : Application.Match correspond à la fonction EQUIV
 
Dim rngBF1 As Range, rngBF2 As Range, cell As Range
Dim retour As Variant
Dim temp As Variant, i As Long
i = 1
 
Set rngBF1 = Sheets("Feuil1").Range("A1:" & Sheets( _
             "Feuil1").Cells(Rows.Count, 1).End(xlUp).Address)
Set rngBF2 = Sheets("Feuil2").Range("A1:" & Sheets( _
             "Feuil2").Cells(Rows.Count, 1).End(xlUp).Address)
 
ReDim temp(1 To rngBF1.Count)
 
For Each cell In rngBF1
    If Not IsError(Application.Match(cell, rngBF2, 0)) Then
        retour = Application.Match(cell, rngBF2, 0)
        temp(i) = Sheets("Feuil2").Cells(retour, 2).Value
    Else
        temp(i) = "sans correspondance"
    End If
    i = i + 1
Next
 
Sheets("Feuil1").Range("B1").Resize(i, 1).Value = Application.Transpose(temp)
 
End Sub
Vous remerciant d'avance pour vos précieux conseils