Copier des valeurs en ligne en colonne
Résolu
Mischoupi
-
Mischoupi -
Mischoupi -
Bonjour,
Je vous donne un exemple :
Actuellement, j'ai cela sous une feuille excel :
Colonne A Colonne B
A 1
A 1
A 1A
A 1 A
B 2
B 3
B 6
C 0
C 0
Au final, j'aimerai
A 1 1 1A 1 A
B 2 3 6
C 0 0
J'ai de nombreuses lignes, pouvez-vous m'aider à automatiser cette tâche
Merci
Je vous donne un exemple :
Actuellement, j'ai cela sous une feuille excel :
Colonne A Colonne B
A 1
A 1
A 1A
A 1 A
B 2
B 3
B 6
C 0
C 0
Au final, j'aimerai
A 1 1 1A 1 A
B 2 3 6
C 0 0
J'ai de nombreuses lignes, pouvez-vous m'aider à automatiser cette tâche
Merci
A voir également:
- Copier des valeurs en ligne en colonne
- Partager photos en ligne - Guide
- Déplacer colonne excel - Guide
- Mètre en ligne - Guide
- Trier colonne excel - Guide
- Colonne word - Guide
3 réponses
Bonjour,
effectivement je n'y avais pas pensé :o/
en pièce jointe classeur modifié
https://www.cjoint.com/?3Dcn3bqBwzu
peux tu me dire le temps d'exécution sur tes 10000 lignes? d'avance merci
effectivement je n'y avais pas pensé :o/
en pièce jointe classeur modifié
https://www.cjoint.com/?3Dcn3bqBwzu
peux tu me dire le temps d'exécution sur tes 10000 lignes? d'avance merci
Mischoupi
Salut Michel, je te dis ça demain. N tout cas grand merci
Bonjour,
Sur une seconde feuille, tu peux, sur la ligne 1 rentrer la formule matricielle suivante : =TRANSPOSE(Feuil1!A1:A100)
Attention : à rentrer sous forme matricielle :
Sélection de la ligne 1 entière
Rentrer la formule =TRANSPOSE(Feuil1!A1:A100)
Valider par Ctrl + Maj + Entrée
Et tu répètes cela pour chacune de tes colonnes
Seul bémol : il te faut définir la limite (ici positionnée à 100).
=> Mettre une valeur suffisamment grande.
Sur une seconde feuille, tu peux, sur la ligne 1 rentrer la formule matricielle suivante : =TRANSPOSE(Feuil1!A1:A100)
Attention : à rentrer sous forme matricielle :
Sélection de la ligne 1 entière
Rentrer la formule =TRANSPOSE(Feuil1!A1:A100)
Valider par Ctrl + Maj + Entrée
Et tu répètes cela pour chacune de tes colonnes
Seul bémol : il te faut définir la limite (ici positionnée à 100).
=> Mettre une valeur suffisamment grande.
Cela dit, tu précises que tu as 2 colonnes, mais dans ton 1er exemple, il semble y en avoir 3.
Qu'en est-il exactement ?
Quoi qu'il en soit :
- si tu as 2 colonnes sur ta feuille 1 (dont le nom est "Feuil1")
- que ce sont les colonnes A et B
- que la plus longue de tes colonnes contient 100 lignes utiles
=> Dans ta feuille 2, voila ce que tu dois faire :
1/ tu sélectionnes la ligne 1
2/ tu rentres la formule =TRANSPOSE(Feuil1!A1:A100) dans la barre de formules
3/ tu valides par la combinaison [Ctrl] [Maj] [Entrée]
4/ tu sélectionnes la ligne 2
5/ tu rentres la formule =TRANSPOSE(Feuil1!B1:B100) dans la barre de formules
6/ tu valides par la combinaison [Ctrl] [Maj] [Entrée]
Et tu viens ensuite nous confirmer que ça marche ...
Qu'en est-il exactement ?
Quoi qu'il en soit :
- si tu as 2 colonnes sur ta feuille 1 (dont le nom est "Feuil1")
- que ce sont les colonnes A et B
- que la plus longue de tes colonnes contient 100 lignes utiles
=> Dans ta feuille 2, voila ce que tu dois faire :
1/ tu sélectionnes la ligne 1
2/ tu rentres la formule =TRANSPOSE(Feuil1!A1:A100) dans la barre de formules
3/ tu valides par la combinaison [Ctrl] [Maj] [Entrée]
4/ tu sélectionnes la ligne 2
5/ tu rentres la formule =TRANSPOSE(Feuil1!B1:B100) dans la barre de formules
6/ tu valides par la combinaison [Ctrl] [Maj] [Entrée]
Et tu viens ensuite nous confirmer que ça marche ...
Bonjour
Excusez l'incruste, mais en ce dimanche c'était çà ou le scrabble avec belle-maman
un petit code
condition: les séries (A,B,Z...)doivent être regroupées par occurence
Michel
Excusez l'incruste, mais en ce dimanche c'était çà ou le scrabble avec belle-maman
un petit code
condition: les séries (A,B,Z...)doivent être regroupées par occurence
Option Explicit Const source As String = "feuil1" Const cible As String = "feuil3" Sub transposer() Dim T_caract(), Fin As Integer, Lig_a As Integer, Lig_b As Integer, Ref As String Dim Lig_c As Integer Dim Start As Single 'initialisations Start = Timer Application.ScreenUpdating = False Sheets(cible).Range("A2:XFD10000").Clear Lig_c = 2 With Sheets(source) 'collecte le couple série lignes Fin = .Columns("A").Find("*", , , , , xlPrevious).Row For Lig_a = 2 To Fin Ref = .Cells(Lig_a, "A") Lig_b = .Columns("A").Find(Ref, , , , , xlPrevious).Row 'restitution de la série des caract sur une ligne T_caract = Application.Transpose(.Range(.Cells(Lig_a, "B"), .Cells(Lig_b, "B")).Value) With Sheets(cible) .Cells(Lig_c, "A") = Ref .Cells(Lig_c, "B").Resize(1, UBound(T_caract)) = T_caract End With 'incrémentation Lig_c = Lig_c + 1 Lig_a = Lig_b Next End With 'présentation résultats Sheets(cible).Activate Application.ScreenUpdating = True MsgBox "Transposition effectuée en: " & Timer - Start & " sec." End Sub
Michel