Matrice en vba
Résolu
sultanga
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
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
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
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
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
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
Cdlmnt
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