cp4
XLDnaute Barbatruc
Bonjour🙂,
J'essaie d'apprendre un peu plus sur les tableaux VBA. Je suis confronté à un problème que je n'arrive pas à résoudre et à comprendre.
Voilà, j'ai pris ces 2 codes du site de Boisgontier.
J'avoue ne pas m'y retrouver. Si j'ai bien compris un tableau 1 dimension se présente en ligne d'où [A1].Resize(UBound(a)) = Application.Transpose(a) pour le transférer sur la feuille en colonne et celui à 2 dimensions se présente en colonne, d'où [A1].Resize(UBound(a)) = a
ça se corse pour moi lorsque je veux transférer sur la feuille en ligne (transposer le tableau). Je n'arrive pas à bien utiliser Resize car je n'ai pas bien compris cette notion. L'aide d'excel ne m'a pas rendu service. Auriez-vous une explication pour que ça se grave dans mon cerveau.
Mes remerciements anticipés.
Bonne journée.
J'essaie d'apprendre un peu plus sur les tableaux VBA. Je suis confronté à un problème que je n'arrive pas à résoudre et à comprendre.
Voilà, j'ai pris ces 2 codes du site de Boisgontier.
VB:
Sub transfertTableau1DChamp()
Dim a()
n = 20000
ReDim a(1 To n)
For i = 1 To 20000
a(i) = i
Next i
'ici transfert sur la feuille en colonne'
[A1].Resize(UBound(a)) = Application.Transpose(a)
Cells.Clear
'ici je voudrais transfert en ligne
[A1].Offset(LBound(a), UBound(a)) = (a) 'plante
End Sub
Sub transfertTableau2DChamp()
Dim a()
Nlig = 20000
Ncol = 3
ReDim a(1 To Nlig, 1 To Ncol)
For l = 1 To Nlig
For c = 1 To Ncol
a(l, c) = l * c
Next c
Next l
'ici transfert sur la feuille en colonne'
[A1].Resize(UBound(a, 1), UBound(a, 2)).Value = a
Cells.Clear
'ici je voudrais transfert en ligne
[A1].Resize(UBound(a, 1), UBound(a, 2)).Value = Application.Transpose(a) 'plante
End Sub
ça se corse pour moi lorsque je veux transférer sur la feuille en ligne (transposer le tableau). Je n'arrive pas à bien utiliser Resize car je n'ai pas bien compris cette notion. L'aide d'excel ne m'a pas rendu service. Auriez-vous une explication pour que ça se grave dans mon cerveau.
Mes remerciements anticipés.
Bonne journée.