Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

DEFI MACRO : Transposition d'une colonne en plusieurs colonnes

  • Initiateur de la discussion Initiateur de la discussion alexjs
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

alexjs

Guest
Salut à tous,
Je suis en train de plancher sur un petit problème avec excel :

J'essaie de transpose UNE colonne contenant une info répartie sur 3 lignes à chaque fois, à la suite (tout sur la même colonne), en plusieurs colonnes (autant de fois qu'il y a des multiples de 3)

ex:

A1
A2
A3
B1
B2
B3
C1
C2
C3
...

à transformer en


A1 B1 C1
A2 B2 C2
A3 B3 C3

Pensez vous qu'une macro est faisable, en se gardant la possibilité de changer le nombre multiple (ici 3) ? En effet j'ai 2500 lignes à traiter et je n'arrive pas à faire ce que je veux avec mon VBA

Merci à tous pour votre aide !

Alex
 

Pièces jointes

Dernière modification par un modérateur:
Re : DEFI MACRO : Transposition d'une colonne en plusieurs colonnes

Re
En fait, je comptais voir ce que je pouvais te proposer mais je m'aperçois que ton exemple n'est pas assez explicite...D'ailleurs, quand je compare les propositions de pierrejean et de papou, les résultats ne sont pas les mêmes...et j'avais personnellement compris encore autre chose😕.
Si par exemple, tu as :
A1
A2
A3
B1
B2
B3
C1
C2
C3
D1
D2
D3
E1
E2
E3
F1

Que veux-tu donc récupérer ?
Personnellement, je penchais pour :
A1 B1 C1 D1 E1 F1 G1
A2 B2 C2 D2 E2 F2
A3 B3 C3 D3 E3 F3
Puisque
J'essaie de transpose UNE colonne contenant une info répartie sur 3 lignes à chaque fois, à la suite (tout sur la même colonne), en plusieurs colonnes (autant de fois qu'il y a des multiples de 3)
Mais maintenant je ne sais plus...
donc personnellement, je m'abstiens donc pour l'instant, en espérant que tu aies trouvé ton bonheur parmi les propositions présentes.
A+
 
Re : DEFI MACRO : Transposition d'une colonne en plusieurs colonnes

Salut David🙂 Pierrejean🙂, alexjs,
alors là oui en lisant ton post David oui j'ai un doute aussi, bref l'auteur de la demande va peut-être se manifester pour nous éclairer sur le résultat souhaité, car pour les 9 premières cellules l'explication et très claire , mais les suivantes on les mets ou comme tu penses à coté ou en dessous ce que je pensais perso
bref attendons donc un retour.
a+
papou🙂
 
Re : DEFI MACRO : Transposition d'une colonne en plusieurs colonnes

Re papou🙂,
en attendant la réponse d'alexjs, je poste selon ce que j'ai compris.
2 possibilités :
Une en VBA :
Code:
Sub transpose()
Dim DerLigne&, Plage, i&, j&, l&, NbLigne As Byte, k As Byte
DerLigne = Range("A" & Rows.Count).End(xlUp).Row
Set Plage = Range("A2:A" & DerLigne)
Tablo = Range("A2:A" & DerLigne)
NbLigne = 3
Dim TabloTranspose
ReDim TabloTranspose(1 To (UBound(Tablo) + 1) / NbLigne, 1 To NbLigne)
j = 1
l = 1
    For i = 1 To (UBound(Tablo) + 1) / NbLigne
        For k = 0 To 2
        On Error Resume Next
            TabloTranspose(j, k + 1) = Tablo(k + l, 1)
        Next k
    j = j + 1
    l = l + NbLigne
    Next i
Range("F1").Resize(UBound(TabloTranspose, 2), UBound(TabloTranspose, 1)) _
= Application.transpose(TabloTranspose)
End Sub
L'autre en formules (qui peut-être traduite en VBA), à tirer vers la droite et le bas :
Code:
=SI(LIGNES($1:1)<=3;INDIRECT(ADRESSE(LIGNES($1:1)+(COLONNES($A:A)-1)*3+1;1));"")&""
Reste à savoir ce qu'alexjs veut vraiment.
A+
 

Pièces jointes

Re : DEFI MACRO : Transposition d'une colonne en plusieurs colonnes

Bonjour à tous,

C'est juste pour jouer avec 😉

en formule

Code:
=DECALER($A2;(COLONNE(A1)-1)*3;0)

Edit : et puis en VBA

Code:
Sub transpose2()
Dim Derligne As Long, i As Long, Colonne As Long, Ligne As Long
    Colonne = 5
    Derligne = Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To Derligne
        Ligne = ((i - 2) Mod 3) + 1
        If Ligne = 1 Then Colonne = Colonne + 1
        Cells(Ligne, Colonne).Value = Cells(i, 1).Value
    Next i
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
345
wDog66
W
Réponses
10
Affichages
412
Réponses
5
Affichages
454
Réponses
5
Affichages
914
Réponses
7
Affichages
367
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…