Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Transposer un tableau VBA

6 réponses
Avatar
Tatanka
Bonjour,

Est-ce possible de transposer table1 de telle sorte
que le Message2 ne renvoie pas d'erreur ?

Sub Essai_Transposer()
Dim table1
Dim table2
table1 = Range("A1:A10").Value
MsgBox table1(3, 1) ' Message1
table2 = Application.Transpose(table1)
MsgBox table2(1, 3) ' Message2
End Sub

Avec toute ma reconnaissance et mon espoir ;-)

Serge

6 réponses

Avatar
michdenis
Bonjour,

A ) tu ne peux pas utiliser "application.Transpose" avec
un tableau à 2 dimension

B ) un petit exemple en utilisant une plage de cellules A1:A10
'----------------------------------
Sub test1()

Dim Table1, Table2()
Dim A As Integer, B As Integer

Table1 = Range("A1:A10")
ReDim Table2(1 To UBound(Table1, 2), 1 To UBound(Table1, 1))

For A = 1 To UBound(Table1, 1)
For B = 1 To UBound(Table1, 2)
Table2(B, A) = Table1(A, B)
Next
Next
Range("B1").Resize(UBound(Table2, 1), UBound(Table2, 2)) = Table2
End Sub
'----------------------------------



"Tatanka" a écrit dans le message de groupe de discussion :

Bonjour,

Est-ce possible de transposer table1 de telle sorte
que le Message2 ne renvoie pas d'erreur ?

Sub Essai_Transposer()
Dim table1
Dim table2
table1 = Range("A1:A10").Value
MsgBox table1(3, 1) ' Message1
table2 = Application.Transpose(table1)
MsgBox table2(1, 3) ' Message2
End Sub

Avec toute ma reconnaissance et mon espoir ;-)

Serge
Avatar
Tatanka
OK merci.


"michdenis" a écrit dans le message de news:
Bonjour,

A ) tu ne peux pas utiliser "application.Transpose" avec
un tableau à 2 dimension

B ) un petit exemple en utilisant une plage de cellules A1:A10
'----------------------------------
Sub test1()

Dim Table1, Table2()
Dim A As Integer, B As Integer

Table1 = Range("A1:A10")
ReDim Table2(1 To UBound(Table1, 2), 1 To UBound(Table1, 1))

For A = 1 To UBound(Table1, 1)
For B = 1 To UBound(Table1, 2)
Table2(B, A) = Table1(A, B)
Next
Next
Range("B1").Resize(UBound(Table2, 1), UBound(Table2, 2)) = Table2
End Sub
'----------------------------------



"Tatanka" a écrit dans le message de groupe de discussion :

Bonjour,

Est-ce possible de transposer table1 de telle sorte
que le Message2 ne renvoie pas d'erreur ?

Sub Essai_Transposer()
Dim table1
Dim table2
table1 = Range("A1:A10").Value
MsgBox table1(3, 1) ' Message1
table2 = Application.Transpose(table1)
MsgBox table2(1, 3) ' Message2
End Sub

Avec toute ma reconnaissance et mon espoir ;-)

Serge



Avatar
JB
Bonjour,

Sub Essai_Transposer2()
'2 colonnes
table1 = Range("A1:B10").Value ' 2 dimensions 10x2
table2 = Application.Transpose(table1) ' 2 dimensions 2x10
MsgBox table2(2, 3)
End Sub


Sub Essai_Transposer1()
'1 colonne
table1 = Range("A1:A10").Value ' 2 dimensions 10x1
table2 = Application.Transpose(table1) ' 1 dimension 10
MsgBox table2(3)
End Sub

JB



On 21 fév, 20:42, "Tatanka" wrote:
Bonjour,

Est-ce possible de transposer table1 de telle sorte
que le Message2 ne renvoie pas d'erreur ?

Sub Essai_Transposer()
    Dim table1
    Dim table2
    table1 = Range("A1:A10").Value
    MsgBox table1(3, 1) ' Message1
    table2 = Application.Transpose(table1)
    MsgBox table2(1, 3)  ' Message2
End Sub

Avec toute ma reconnaissance et mon espoir ;-)

Serge


Avatar
JB
http://cjoint.com/?cwjzicY52O

Sub Essai_Transposer1Colonne()
'1 colonne
table1 = Range("A1:A10").Value ' 2 dimensions 10x1
table2 = Application.Transpose(table1) ' 1 dimension 10
MsgBox table2(3)
[F10].Resize(, UBound(table2, 1)) = table2
End Sub

Sub Essai_Transposer2Colonnes()
'2 colonnes
table1 = Range("C1:D10").Value ' 2 dimensions 10x2
table2 = Application.Transpose(table1) ' 2 dimensions 2x10
MsgBox table2(2, 3)
[F1].Resize(UBound(table2, 1), UBound(table2, 2)) = table2
End Sub

JB

On 22 fév, 09:09, JB wrote:
Bonjour,

Sub Essai_Transposer2()
    '2 colonnes
    table1 = Range("A1:B10").Value           ' 2 dimensio ns 10x2
    table2 = Application.Transpose(table1)  ' 2 dimensions 2x10
    MsgBox table2(2, 3)
End Sub

Sub Essai_Transposer1()
    '1 colonne
    table1 = Range("A1:A10").Value          '  2 dimens ions  10x1
    table2 = Application.Transpose(table1) ' 1 dimension   10
    MsgBox table2(3)
End Sub

JB

On 21 fév, 20:42, "Tatanka" wrote:



> Bonjour,

> Est-ce possible de transposer table1 de telle sorte
> que le Message2 ne renvoie pas d'erreur ?

> Sub Essai_Transposer()
>     Dim table1
>     Dim table2
>     table1 = Range("A1:A10").Value
>     MsgBox table1(3, 1) ' Message1
>     table2 = Application.Transpose(table1)
>     MsgBox table2(1, 3)  ' Message2
> End Sub

> Avec toute ma reconnaissance et mon espoir ;-)

> Serge- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
michdenis
Merci d'avoir modulé la réponse faite.
La commande copie-collage spécial - transposer
s'adresse d'ailleurs à une plage de cellules !
Difficile de penser qu'on ne peut pas le faire en VBA.
Je devrais avoir l'esprit ailleurs !
Avatar
Tatanka
Ave JB,

Je n'étais pas trop loin de mon but ;-)

Merci pour les différents exemples.

Serge



"JB" a écrit dans le message de news:
Bonjour,

Sub Essai_Transposer2()
'2 colonnes
table1 = Range("A1:B10").Value ' 2 dimensions 10x2
table2 = Application.Transpose(table1) ' 2 dimensions 2x10
MsgBox table2(2, 3)
End Sub


Sub Essai_Transposer1()
'1 colonne
table1 = Range("A1:A10").Value ' 2 dimensions 10x1
table2 = Application.Transpose(table1) ' 1 dimension 10
MsgBox table2(3)
End Sub

JB



On 21 fév, 20:42, "Tatanka" wrote:
Bonjour,

Est-ce possible de transposer table1 de telle sorte
que le Message2 ne renvoie pas d'erreur ?

Sub Essai_Transposer()
Dim table1
Dim table2
table1 = Range("A1:A10").Value
MsgBox table1(3, 1) ' Message1
table2 = Application.Transpose(table1)
MsgBox table2(1, 3) ' Message2
End Sub

Avec toute ma reconnaissance et mon espoir ;-)

Serge