Bonjour
J'ai une feuille DEST à remplir avec les lignes de la feuille SRC (100.000 lignes) si le flag contenu dans la feuille CLE (4.000 lignes) en colonne 33 est a null.
La recopie se fait tant que la clé "cleSRC" contenue dans la colonne 68 de lafeuille SRC (de 3 à 30 lignes à recopier par clé) que celle de la feuille CLE (1 clé unique "cleCLE")
Faire une double boucle sur deux tableaux de 100.000 et de 4.000 lignes... patience..
Y a t il une autre solution ?
Merci d'avance,
Cdt
aude
Private Sub recopie()
Dim nRowSRC, nRowCLE, i, j As Long
Dim cleCLE, cleSRC, toto As String
Dim randomization As Boolean
randomization = False
nRowSRC = nRowCLE = i = j = 0
cleCLE = cleSRC = ""
nRowSRC = Sheets("SRC").Cells(Rows.Count, "B").End(xlUp).Row
nRowCLE = Sheets("CLE").Cells(Rows.Count, "B").End(xlUp).Row
For j = 1 To nRowCLE
For i = 1 To nRowSRC
cleCLE = Sheets("CLE").Cells(j + 1, 33)
cleSRC = CStr(Trim(Sheets("SRC").Cells(i + 1, 2).Value) & "-" & Trim(Sheets("SRC").Cells(i + 1, 3).Value))
If Sheets("CLE").Cells(j + 1, 32).Value = "" Then
If cleCLE = cleSRC Then
Sheets("DEST").Entire.Rows(i + 1).Value = Sheets("SRC").Entire.Rows(i + 1).Value
'i = i + 1
End If
Else
If Sheets("CLE").Cells(i + 1, 31) = "" Then
Sheets("DEST").Rows(i + 1).Value = Sheets("SRC").Rows(i + 1).Value
ElseIf Sheets("CLE").Cells(i + 1, 31) <> Empty Then
randomization = True
End If
End If
Next i
Next j
End Sub