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 30 31 32 33 34 35 36 37 38
| Dim oRng_src As Range
Dim oRng_bdd As Range
Dim i As Integer, j As Integer
'Sélection de la feuille où est rentré les données variables en colonne A
'Pas de sélection - on utilise la feuille
With Worksheets("Feuil1")
'Sélection de la colonne
'On set la variable oRng_src sur la cellule A1 de Feuil1
Set oRng_src = .Range("A1")
'Boucle sur la colonne, mais je ne comprend pas pourquoi i=0 et la fonction .find("*", , , , , xlPrevious).Row - 1
'On boucle de i = 0 à i = la dernière ligne non-vide de la colonne A de Feuil1
For i = 0 To .Columns(1).Find("*", , , , , xlPrevious).Row - 1
'Sélection de la deuxieme feuille où se trouve des données fixes
'Avec la feuille Feuil2
With Worksheets("Feuil2")
'Colonne où sera appliquée la recherche d'égalité, pourquoi (i,0)?
'On recherche sur la colonne 2 la valeur de oRng_src.Offset(i, 0) et on set oRng_bdd sur cette cellule.
'oRng_src.Offset(i, 0), c'est A1 avec un décalage de i lignes (de Feuil1)
Set oRng_bdd = .Columns(2).Find(oRng_src.Offset(i, 0), LookIn:=xlValues, LookAt:=xlWhole)
'Condition d'égalité, pour ensuite ajouter les données se trouvant sur la même ligne mais dans les deux colonnes qui suivent
'Si on ne trouve pas de valeur alors oRng_bdd sera à "Nothing". Ainsi, on vérifie qu'on a bien une valeur.
If Not oRng_bdd Is Nothing Then
'Si on a une valeur, alors on rentre dans la condition et on met dans les cellules oRng_src.Offset(i, j) les valeurs.
'Ici j = 3 et 4. Donc on prend oRng_bdd.Offset(0, 3) et oRng_bdd.Offset(0, 4) (décalage respectif de 3 et 4 colonnes) dans oRng_src.Offset(i, j)
For j = 3 To 4
oRng_src.Offset(i, j) = oRng_bdd.Offset(0, j)
Next j
End If
'Pourquoi appliqué la qualité Nothing?
'Et on replace la variable oRng_bdd à Nothing pour réeffectuer la boucle.
Set oRng_bdd = Nothing
End With
Next i
End With
End Sub |
Partager