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
- Formulaire en ligne de meta - 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