Copier des valeurs en ligne en colonne [Résolu/Fermé]

Signaler
-
 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

3 réponses

Messages postés
16209
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
17 septembre 2020
3 032
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
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61028 internautes nous ont dit merci ce mois-ci

Salut Michel, je te dis ça demain. N tout cas grand merci
Messages postés
1440
Date d'inscription
jeudi 3 octobre 2002
Statut
Contributeur
Dernière intervention
5 janvier 2013
119
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.
Je viens de réessayer. Mais le truc c'est qu'au global j'ai 9000 lignes
Messages postés
1440
Date d'inscription
jeudi 3 octobre 2002
Statut
Contributeur
Dernière intervention
5 janvier 2013
119
Essaye avec www.cjoint.com
Tu crées un lien direct pour qu'on puisse voir ton fichier excel (si les données ne sont pas confidentielles)
http://cjoint.com/?3CEv1oaTZTi

Re Bonjour,

Voici un exemple. En feuill1, ce que j'ai aujourd"hui. En feuil2, ce que j'aimerai obtenir.
Il faut savoir que mon fichier en feuill1 compte Près de 10000 lignes. Merci pour votre aide
Messages postés
1440
Date d'inscription
jeudi 3 octobre 2002
Statut
Contributeur
Dernière intervention
5 janvier 2013
119
Bonjour,
J'avais commencé à faire un début de solution (pour ne pas dire "usine à gaz"), mais depuis mon poste au boulot.
Ca peut attendre lundi j'espère ...
Pas de souci pitu. Ça peut attendre demain. Grd merci
Messages postés
16209
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
17 septembre 2020
3 032
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

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
Bonjour, j'essaie demain et je vous dis. Merci
Messages postés
1440
Date d'inscription
jeudi 3 octobre 2002
Statut
Contributeur
Dernière intervention
5 janvier 2013
119
A ben si michel_m s'y colle, mon meilleur conseil sera ... de suivre le sien !
(pour info, j'étais parti sur une solution sans macro ni VBA. Une usine à gaz, quoi !)
Bonjour,
La macro de Michel fonctionne très bien sauf dans le cas où j'ai une seule occurence en colonne A. Que faut-il que je modifie pour que ca marche
Bjr Michel, avec plusieurs occurrences DS la colonne À, la transposition à dure 39s
Merci à tous....