Bonjour à toutes et tous,
Je rencontre un problème de compréhension sur une ligne d’une macro que j'ai adaptée. (Je ne suis pas un spécialiste macro)
Pour info, je récupère des infos d'un gros fichier (35'000 lignes et 84 colonnes) pour en récupérer que celles qui sont pertinentes dans une autre feuille de 20 colonnes.
Mon problème vient (je pense) de cette ligne: Sheets("Gros_Prod").Range("A2").Resize(UBound(tablo2, 2), 20) = Application.Transpose(tablo2)
A quoi sont attribué ces informations: Resize(UBound(tablo2, 2), 20)
Je voudrais comprendre à quoi correspond la valeur 2 et la valeur qui suit. J'ai mis 20 car mon tableau qui reçoit les données comportent 20 lignes. Sur la macro où j'ai récupéré cette valeur il est indiqué Resize(UBound(tablo2, 2), 3)
Pour essayer de me faire mieux comprendre j'ai mis la macro en entier ci-dessous... Je ne peux pas attacher le fichier car il fait 36'981 Ko.
Je vous remercie pour votre aide car je sèche depuis un long moment. Merci d'avance car votre forum m'a déjà bien aidé sur certaine problématique et je suis toujours impressionné par votre expertise.
Avec mes plus cordiales salutations
Fabrice
Sub Import_Données_Gros()
Dim i As Long, k As Long, DerLig As Long
Application.Calculation = xlCalculationManual
Sheets("Gros_Prod").Range("A2:D" & Sheets("Gros_Prod").Range("A" & Sheets("Gros_Prod").Rows.Count).End(xlUp)(2).Row).ClearContents
With Sheets("BD_REG")
tablo1 = .Range("A2:CF" & .Range("A" & .Rows.Count).End(xlUp).Row)
ReDim tablo2(20, 1)
k = 0
For i = 1 To UBound(tablo1, 1)
If tablo1(i, 84) = "Gros_Prod" Then
ReDim Preserve tablo2(20, k + 1)
tablo2(0, k) = tablo1(i, 1)
tablo2(1, k) = tablo1(i, 10)
tablo2(2, k) = tablo1(i, 41)
tablo2(3, k) = tablo1(i, 77)
tablo2(4, k) = tablo1(i, 78)
tablo2(5, k) = tablo1(i, 3)
tablo2(6, k) = tablo1(i, 84)
tablo2(7, k) = tablo1(i, 20)
tablo2(8, k) = tablo1(i, 25)
tablo2(9, k) = tablo1(i, 27)
tablo2(10, k) = tablo1(i, 28)
tablo2(11, k) = tablo1(i, 29)
tablo2(12, k) = tablo1(i, 31)
tablo2(13, k) = tablo1(i, 23)
tablo2(14, k) = tablo1(i, 24)
tablo2(15, k) = tablo1(i, 13)
tablo2(16, k) = tablo1(i, 14)
tablo2(17, k) = tablo1(i, 15)
tablo2(18, k) = tablo1(i, 81)
tablo2(19, k) = tablo1(i, 80)
k = k + 1
End If
Next i
End With
Sheets("Gros_Prod").Range("A2").Resize(UBound(tablo2, 2), 20) = Application.Transpose(tablo2)
MsgBox "MàJ terminée", vbExclamation
'Application.Calculation = xlCalculationAutomatic
End Sub