Bonjour à tous,
Devant travailler sur des fichiers comportant bcp de lignes j'essaie de comprendre les tableaux. A force de surfer j'ai réussi à trouver une solution pour mon problème du moment, mais je suis loin de tout comprendre.
Le code ci dessous fonctionne très bien:
Sub test()
Dim Montab()
Dim Montab1()
Dim i As Long
Dim j As Long
Dim Der As Long
Dim Lig As Long
Lig = Sheets(2).Cells(100000, 1).End(xlUp).Row
Der = Sheets(1).Cells(100000, 1).End(xlUp).Row
ReDim Montab(Der, 1)
ReDim Montab1(Lig, 1)
For i = 1 To Der
For j = 1 To Lig
Montab(i, 0) = Sheets(1).Range("A" & i)
Montab(i, 1) = Sheets(1).Range("B" & i)
Montab1(j, 0) = Sheets(2).Range("A" & j)
Montab1(j, 1) = Sheets(2).Range("B" & j)
If Montab(i, 0) = Montab1(j, 0) Then
Sheets(1).Cells(i, 2) = Sheets(2).Cells(j, 2)
End If
Next j
Next i
End Sub
Mais je ne comprends pas pourquoi si on remplace " Sheets(1).Cells(i, 2) = Sheets(2).Cells(j, 2) " par
" Montab(i, 1) = Montab1(j, 1) " il ne se passe rien?
Merci
Cordialement
Devant travailler sur des fichiers comportant bcp de lignes j'essaie de comprendre les tableaux. A force de surfer j'ai réussi à trouver une solution pour mon problème du moment, mais je suis loin de tout comprendre.
Le code ci dessous fonctionne très bien:
Sub test()
Dim Montab()
Dim Montab1()
Dim i As Long
Dim j As Long
Dim Der As Long
Dim Lig As Long
Lig = Sheets(2).Cells(100000, 1).End(xlUp).Row
Der = Sheets(1).Cells(100000, 1).End(xlUp).Row
ReDim Montab(Der, 1)
ReDim Montab1(Lig, 1)
For i = 1 To Der
For j = 1 To Lig
Montab(i, 0) = Sheets(1).Range("A" & i)
Montab(i, 1) = Sheets(1).Range("B" & i)
Montab1(j, 0) = Sheets(2).Range("A" & j)
Montab1(j, 1) = Sheets(2).Range("B" & j)
If Montab(i, 0) = Montab1(j, 0) Then
Sheets(1).Cells(i, 2) = Sheets(2).Cells(j, 2)
End If
Next j
Next i
End Sub
Mais je ne comprends pas pourquoi si on remplace " Sheets(1).Cells(i, 2) = Sheets(2).Cells(j, 2) " par
" Montab(i, 1) = Montab1(j, 1) " il ne se passe rien?
Merci
Cordialement
Pièces jointes
Dernière édition: