Matrice en vba

Résolu
Bonjour,
Je n'arrive pas à coprendre le code que je dois appliquer à mon "problème". Je dois convertir les "rows to columns" avec les données de mes matrices. Je suis novice en vba, je viens juste de comprendre comment marche les macros mais pour faire les code, c'st un peu dur...
en espérat que quelqu'un peut m'aider..
merci beaucoup en avance
le code:
Sub tt()
Dim a(), i&, ii&, x&
a = [a1].CurrentRegion.Value
ReDim b(1 To UBound(a) * UBound(a, 2), 1 To 3)
For i = 2 To UBound(a)
For ii = 2 To UBound(a, 2)
x = x + 1
b(x, 1) = a(i, 1)
b(x, 2) = a(1, ii)
b(x, 3) = a(i, ii)
Next
Next
Workbooks.Add(1).Sheets(1).[a1].Resize(x, 3) = b
End Sub

4 réponses

  1. Si c'est fini, peux tu mettre le sujet à Résolu (en haut à droite de ton premier message)

    Bonne soirée
    1. Bonjour

      Comme dit Patrice que je salue au passage, pourquoi t'embêter à coder la transposition
      Si tu tiens absolument à faire ça en vba peut être t'inspirer de ceci

      Public Sub TR()
      Dim nbli As Long, nbco As Long
      Dim adrmat As String, adrcible As String, M As Range
      adrmat = InputBox("adresse matrice à transposer")
      Set M = Range(adrmat)
      adrcible = InputBox("adresse cellule cible ")
      nbli = M.Rows.Count
      nbco = M.Columns.Count
      Range(adrcible).Resize(nbco, nbli) = Application.Transpose(M)
      End Sub

      Cdlmnt
      1. merci beaucoup!!!
    2. Bonjour,
      j'ai compris comment le marche le code. En fait, j'ai 5 matrices pour les années de 2004 à 2009 et pour chaque année il y a des trimestres, c'est pour ça je pense que c'est mieux d'appliquer le code.
      Mais maintenant, j'ai un autre problème, le code ne se copie pas et je suis obligée de faire plusieurs classeurs eu lieu de garder toujours le même classeur..est ce qu'il y a une solution?
      Merci d'avance,
      A
      1. bonjour,

        Pour convertir les lignes en colnnes, pas besoin de macro, utilises la formule TRANSPOSE()