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

XL 2010 Transposer plusieurs colonnes en lignes sans perdre l'ordre de départ

RainLumos

XLDnaute Nouveau
Bonjour à toutes et à tous !

Je me rends compte que ce genre de message est récurrent, j'essaye de lire toutes les discussions similaire mais pour l'instant ça ne corresponds pas tout à fait donc je poste un nouveau message. si entre-temps je trouve une solution je supprimerais

Voilà, ma demande est plutôt simple dans les faits : je souhaite mettre des cellules disposée en ligne sur plusieurs colonnes (en gros les unes derrière les autres) dans une seule colonne (les unes sur les autres) pour au final n'avoir qu'une seule colonne.
Ma méthode -archaïque- pour l'instant : J'insère le nombre de ligne nécessaire sous la ligne choisie, puis je copie mes cellules et je les transpose dans la colonne dédiée. Sur le papier c'est très simple

MAIS (car oui, il y'a un "mais", sinon je ne serais point ici T_T )

1) J'ai au moins 10 000 lignes à faire.
2) Dans mon tableau, une ligne = une "signature", qui consiste a avoir un des nom+prénom, parfois une adresse et surtout le nom d'une ou plusieurs institutions. Ce sont les institutions qui m’intéresse (et que j'ai déjà pré-triées pour enlever celle dont je ne veux pas mais je souhaite garder dans une première colonne la signature entière pour ne pas me perdre).
Ces institutions sont donc eclatées sur plusieurs cellules séparées, dans une ligne.

Exemple :

Une signature c'est ça : Laguionie, Damien; Iturralde, Thomas; Shaddix, Jacoby] Univ Montpellier, CNRS, CIRAD; 18 rue du temple ; 34090; Montpellier, France;

Pour l'instant dans mon tableau j'ai dans la 1ere colonne la signature, puis les institutions ce qui donne +/- ceci :

1Laguionie, Damien; Iturralde, Thomas; Shaddix, Jacoby] Univ Montpellier, CNRS, CIRAD, Montpellier, France;Univ MontpellierCNRSCIRAD
2Darmon, Gérard; Chabat, Alain] Univ Nimes, CNRS, CIRAD, Nimes, France;Univ NimesCNRSCIRAD

Dans mon tableau final je veux avoir dans une 1ere colonne la signature non triée et dans l'autre colonne juste les institutions que j'aurais laissé et que toutes ces celulles soient mise sur une colonne.

1Laguionie, Damien; Iturralde, Thomas; Shaddix, Jacoby] Univ Montpellier, CNRS, CIRAD, Montpellier, France;Univ Montpellier
Laguionie, Damien; Iturralde, Thomas; Shaddix, Jacoby] Univ Montpellier, CNRS, CIRAD, Montpellier, France;CNRS
Laguionie, Damien; Iturralde, Thomas; Shaddix, Jacoby] Univ Montpellier, CNRS, CIRAD, Montpellier, France;CIRAD
2Darmon, Alain; Chabat, Alain] Univ Nimes, CNRS, CIRAD, Nimes, France;Univ Nimes
Darmon, Alain; Chabat, Alain] Univ Nimes, CNRS, CIRAD, Nimes, France;CNRS
Darmon, Alain; Chabat, Alain] Univ Nimes, CNRS, CIRAD, Nimes, France;CIRAD
[td]
[/td] [td]

Du coup je suis preneuse de toute solution miracle qui me ferait gagner un peu de temps, même si je dois me mettre à python pour ça :lol:
Si je n'ai pas été assez claire n'hésitez pas à me le dire pour que j'essaie de vous éclaircir ma pensée.

Je joins une partie de mon fichier excel (complet il est trop lourd )

Merci d'avance a ceux qui prendront le temps de me lire

Bonne journée !
 

Pièces jointes

  • FICHIER A MODIFIER_Incomplet.xlsx
    966 KB · Affichages: 7
Dernière édition:
Solution
Non, pas de soucis, mais ce n'est pas ce que tu as demandé au début
La modification :
VB:
Sub transposer()

Set ws_base = Sheets("base")
Set ws_tr = Sheets("transpose")

NbLig = Application.WorksheetFunction.CountA(Range("A:A"))

Compteur = 1

For i = 1 To NbLig
j = 2
    ws_tr.Cells(Compteur, "A") =...

Ikito

XLDnaute Occasionnel
Bonjour,

Voir la macro ci-après :

VB:
Sub transposer()

Set ws_base = Sheets("base")
Set ws_tr = Sheets("transpose")

NbLig = Application.WorksheetFunction.CountA(Range("A:A"))

Compteur = 1

For i = 1 To NbLig
j = 2
    While ws_base.Cells(i, j) <> ""
    ws_tr.Cells(Compteur, "A") = ws_base.Cells(i, "A")
    ws_tr.Cells(Compteur, "B") = ws_base.Cells(i, j)
    j = j + 1
    Compteur = Compteur + 1
    Wend
Next

End Sub

Fonctionne si le tableau est structuré ainsi (pas de limitation dans le nombre de colonnes) :



Pour le nom des feuilles, la feuille avec les données brutes : "base", la feuille ou la transposition est faite : "transpose".

La macro doit être lancée depuis la feuille "base". Si ça pose problème, peut-être contourné.
 

RainLumos

XLDnaute Nouveau
Bonjour @Ikito,

C'est déja un merveilleux début pour moi, je te remercie !
Seulement, y'a t-il un moyen de mettre la colonne "B" de la feuille base dans une colonne différente dans la feuille transpose ?

En gros, que la colonne en jaune

Se place comme ceci. J'ai l'impression que c'est la partie la plus galère :/


Mais déjà je te remercie pour ta réponse (rapide qui plus est !)

C.
 

Lolote83

XLDnaute Barbatruc
Salut RainLumos,
Voici ton fichier en retour en espérant avoir bien ciblé la demande.
Clic sur le bouton TEST
@+ Lolote83
 

Pièces jointes

  • Copie de RAINLUMOS - FICHIER A MODIFIER_Incomplet.xlsm
    923.6 KB · Affichages: 8

Ikito

XLDnaute Occasionnel
Non, pas de soucis, mais ce n'est pas ce que tu as demandé au début
La modification :
VB:
Sub transposer()

Set ws_base = Sheets("base")
Set ws_tr = Sheets("transpose")

NbLig = Application.WorksheetFunction.CountA(Range("A:A"))

Compteur = 1

For i = 1 To NbLig
j = 2
    ws_tr.Cells(Compteur, "A") = ws_base.Cells(i, "A")
    While ws_base.Cells(i, j) <> ""
    ws_tr.Cells(Compteur, "B") = ws_base.Cells(i, j)
    j = j + 1
    Compteur = Compteur + 1
    Wend
Next

End Sub
 

RainLumos

XLDnaute Nouveau

@Ikito Je te prie de m'excuser, je pensais l'avoir demandé Tu es d'une grande aide, c'est parfait merci beaucoup ! Je remercie énormément pour ton aide ! Et si jamais tu as un peu de temps, j'adorerais que tu m'explique comment tu as fait pour qu'à l'occasion je puisse comprendre et le refaire de moi-même
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…