[VBA]Transposition horizontale cellules

Bonjour,

Je possède une entrée de 81 valeurs disposées sous une colonne.

J'aimerais pouvoir, lorsque je sélectionne la première cellule de cette colonne, qu'une automatisation VBA m'effectue le travail suivant:

A
B
C
D
E
F
G
H
I
J
K
L
M
..

-> ABCDEFGHI
JKLM...

En clair, j'aimerais faire une transposition horizontale par paquet de 9 éléments pour me retrouver au final avec un tableau de 9x9.

Merci d'avance pour votre aide!

1 réponse

  1. bonjour

    Option Explicit 
    Option Base 1 
    
    Const n = 6 
    
    Sub transforme() 
    Dim TV 
    Dim T(n, n) 
    Dim li As Long, co As Long 
      TV = Range(Cells(1, 1), Cells(n * n, 1)).Value 
      For li = 1 To n 
        For co = 1 To n 
          T(li, co) = TV((li - 1) * n + co, 1) 
        Next co 
      Next li 
      Range(Cells(1, 3), Cells(n, n + 2)).Value = T 
    End Sub 
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
      If Target.Address = "$A$1" Then 
        Call transforme 
      End If 
    End Sub

    - mettre les 6x6 valeurs en colonne à partir de A1
    - le tableau carré 6x6 est affiché à partir de la colonne C
    - à toi d'adapter

    bonne suite