[VBA]Transposition horizontale cellules

YoupiYoupla -  
ccm81 Messages postés 11033 Statut Membre -
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. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    0