[VBA]Transposition horizontale cellules

Fermé
YoupiYoupla - 9 avril 2011 à 12:15
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 - 9 avril 2011 à 17:09
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

ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
Modifié par ccm81 le 9/04/2011 à 17:09
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