Transformer des lignes en colonnes dans excel

Résolu
Bonjour,
J'ai déjà plusieurs réponses dans les forum mais aucune ne correspond à ma question.
J'ai un tableau Excel sous la forme suivante

Arnaud
12, rue de Courcelles
(saut de ligne)
Juliette
15 rue des Platanes

etc
Je voudrais arriver à un tableau du style

Arnaud 12, rue de Courcelles
Juliette 15 rue des Platanes

Le pire, c'est que je sais que c'est possible car je l'ai déjà fait un jour mais impossible de retrouver la fonction.
Merci de venir à mon aide

9 réponses

  1. bonsoir,

    sélectionner la colonne, clic droit/Copier
    activer une cellule vide, clic droit/collage spécial/transposer
    0
    1. Bonjour Alex,

      Bonjour Mike,
      Je crois comprendre qu'Alex a un tableau de la forme:
      A 1 = Arnaud
      A 2 = Rue de Amandiers
      A 4 = Bernard
      A 5 = Rue Boulanger
      A 7 = Cécile
      A 8 = Rue de Clichy

      et il voudrait obtenir
      A 1 = Arnaud
      B 1 = Rue de Amandiers
      A 2 = Bernard
      B 2 = Rue Boulanger
      A 3 = Cécile
      B 3 = Rue de Clichy

      A Alex,
      Si c'est bien cela il faut que tu poses en B1 : = A2
      Ensuite tu copies/colles ta formule en B4, B7, B 10 etc , toutes les 3 lignes en face du nom puisqu'il y a une ligne vide entre chaque couple nom/adresse, et ensuite tu supprime les lignes d'adresse et les lignes vides. En espérant que le tableau initial n'est pas trop grand, sinon il te faudra écrire une petite macro pour automatiser tout ça.
      En espérant t'avoir compris, sinon autant pour moi
      Bonne suite
      0
      1. Bonjour

        Je reprends mon problème :
        J'ai supprimé dans mon fichier d'origine toutes les lignes vides. Donc maintenant je me retrouve avec un tableau du style :
        A1 : Paul
        A2 : 13 rue des Platanes
        A3 : Rob
        A4 : 35 rue des Acacias
        etc
        Comment puis je faire pour avoir
        A1 : Paul
        B1 : 13 rue des Platanes
        A2 : Rob
        B2 : 35 rue des Acacias

        Sachant que mon but ultime est de trier ce tableau en fonction des rues !!!!!!!!

        Merci de votre aide !!!

        Alex
        0
    2. Contributeur
      0
      1. Bonjour les Antilles!
        De l'avantage des questions convenablement posées ...
        Cordialement
        0
      2. Contributeur
        Mon message #3 était une réponse à la demande d'Alex "impossible de retrouver la fonction".
        La réponse à son problème "Je voudrais arriver à un tableau du style Arnaud 12, rue de Courcelles" figure dans mon message #5. Elle permet d'éviter transpositions et macros.
        Amitiés à vous tous.
        0
    3. Contributeur
      Salut à tous.

      Avec
      A1 => Arnaud
      A2 => 12, rue de Courcelles
      A3 =>
      A4 => Juliette
      A5 => 15 rue des Platanes
      A6 =>
      A7 => Max
      A8 => 40 Bd Lannes
      A9 =>
      on saisit en B1 la formule
      =INDEX(A:A;3*LIGNE()-2)&" "&INDEX(A:A;3*LIGNE()-1)
      qu'on recopie vers le bas ...
      0
      1. Bonjour Mr Pentier

        Merci de votre réponse. Je me suis empressée de recopier la "formule magique", hèlas j'ai reçu un message d'erreur. Mon excel est en anglais donc j'ai écrit ;

        =INDEX(A:A;3*LINEST()-2) &""&INDEX(A:A;3*LINEST()-1)

        Où est l'erreur ??
        Mon tableau est très très grand (plus de 1000 noms) alors je ne peux pas utiliser une solution comme me l'a aimablement proposé Tessel25.

        Je serai ravie que vous m'éclairiez de vos lumières....
        0
      2. Contributeur
        Je ne pratique pas Excel en anglais.
        Toutefois je sais qu'il faut remplacer les points-virgules par des virgules ...
        Tu n'as pas précisé quel était ce message d'erreur : je suppose que tes données sont bien dans la colonne A:A ?
        0
      3. Ca ne marche toujours pas.
        Un grand merci à vous pour votre aide
        0
      4. Super, on avance mais ce n'est pas encore ça !

        Maintenant j'ai obtenu un tableau du style :Arnaud 12 rue Courcelles dans une seule cellule. Comment puis je scinder cette cellule pour avoir dans A1 le nom et dans A2 l'adresse. Mon but ultime étant de classer les adresses...

        Mille mercis !!!!!!!!!!!!

        PS : Il fallait bien changer ligne par row (honte à moi !!!! j'aurais pu m'en douter !!!!!) par contre, il faut garder les points virgules sinon la fonction ne marche pas...
        0
    4. Contributeur
      bonjour,

      LIgne() sur un excel en anglais:
      ROW()
      et donc:
      =INDEX(A:A,3*ROW()-2) &" "&INDEX(A:A,3*ROW()-1)

      pour les francophones bossant sur des excel en anglais et pour les dévoués et infatigables bénévoles,les pôvres!

      il existe un fichier indispensable
      VBALIST.XLS
      pour cette discussion, page "fonction de feuille de calcul"
      pour trouver
      démarrer-rechercher vbalist*

      et comme déjà dit remplacer les points-virgules par des virgules

      Michel
      0
      1. re-Bonjour

        Je reprends mon problème :
        J'ai supprimé dans mon fichier d'origine toutes les lignes vides. Donc maintenant je me retrouve avec un tableau du style :
        A1 : Paul
        A2 : 13 rue des Platanes
        A3 : Rob
        A4 : 35 rue des Acacias
        etc
        Comment puis je faire pour avoir
        A1 : Paul
        B1 : 13 rue des Platanes
        A2 : Rob
        B2 : 35 rue des Acacias

        Sachant que mon but ultime est de trier ce tableau en fonction des rues !!!!!!!!

        Merci de votre aide !!! et de votre incroyable patience !!!

        Alex
        0
    5. Contributeur
      Bonjour à tous,

      Pour les utilisateurs excel anglais n'oubliez pas les correspondances de fonctions établies par pijaku sur CCM.
      0
      1. super pratique merci

        seulement mon problème n'est toujours pas résolu!!!!!!
        0
    6. Contributeur
      Bonjour,

      Avec ton tableau sans lignes vides
      en B1 :
      =SI(MOD(LIGNE();2)=0;"";A1)
      en C1 :
      =SI(MOD(LIGNE();2)=0;"";A2)
      Tu tires tes formules selon ta plage A:A et il ne te reste plus qu'à trier B:C

      PS: tu sais mettre les formules en anglais, maintenant...
      Toujours zen
      La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
      0
      1. Bonjour gbinforme

        Enfin ça marche !!!! Pour moi, qui ne connaissait rien à Excel, c'est un miracle !!!!!!!
        Je voudrais vous remercier très sincèrement car pour moi ce sont des heures de galère en moins

        Mille mercis pour votre patience et votre savoir faire !!

        Alex
        0
    7. Contributeur
      Alex ! Alex !

      1)
      Ta question initiale ne demandait pas un affichage en 2 colonnes
      Je voudrais arriver à un tableau du style 
      Arnaud 12, rue de Courcelles
      Juliette 15 rue des Platanes
      Ce n'est qu'au douzième message que tu ajoutes cette contrainte !

      2) Tu aurais pu facilement partir de ma formule
      =INDEX(A:A;3*LIGNE()-2)&" "&INDEX(A:A;3*LIGNE()-1) pour écrire
      =INDEX(A:A;3*LIGNE()-2) en B1 et
      =INDEX(A:A;3*LIGNE()-1) en C1 !
      Ces formules ne nécessitent pas la suppression des lignes vides ...
      0
      1. Bonjour !

        Eh oui, vous avez complètement raison, je n'ai pas été assez explicite dans l'énoncé de mon problème ! Et surtout je n'ai pas précisé mon but ultime, à savoir trier tout mon tableau en fonction des rues
        J'ai recopié (en anglais) vos formules et ça marche en effet ! mais par contre, je n'arrive pas à trier mes colonnes ensuite !! Grrrrrrr

        Bon, en tout cas, je vous remercie très sincèrement car je trouve ça généreux de votre part de partager vos connaissances sur le net !

        Mille mercis pour votre patience et votre savoir faire !!

        Alex
        0
      2. Contributeur
        C'est volontairement que j'y vais par étapes, car tu risques de tout mélanger ...

        Si tu as appliqué mes formules, et si ta colonne A comportait 1200 noms et 1200 adresses, cela a occupé 3600 lignes. Avec mes formules, tu as des résultats de B1 à C1200.
        Un tri sur la colonne B ne va provoquer aucun changement, puisque ce sont des formules qui continuent à se baser sur la colonne A
        .
        Il faut donc maintenant sélectionner B1:C1200 et faire Copier ;
        puis aller en A1 et faire Collage spécial Valeurs.
        Tu supprimes alors la colonne C et les lignes 1201 à 3600, qui ne servent plus à rien.

        Et plus rien ne t'empêche de faire ton tri ...
        0
      3. GENIAL !!! Ca marche !!!
        Merci 1000 fois de votre patience et de votre gentillesse !!
        On peut dire que j'ai appris pas mal de trucs en un min de temps grâce à vous !!!
        J'espère qu'un jour je pourrais rendre service à quelqu'un comme vous l'avez fait avec moi !!
        Bonne continuation et peut être à un de ces jours pour d'autres problèmes ardus (enfin... ardus pour moi !!!)
        Alex
        0
      4. Contributeur
        Tant mieux si tu as pu apprendre et retenir de nouvelles manipulations et formules.
        Elles te seront utiles pour la suite ...

        Amicalement.
        0
    8. Bonjour

      faire une macro si tu bricole un peu dans vba

      Sub testLigne()
      Nlig = Range("A" & Rows.Count).End(xlUp).Row
      Lig = 1
      For L = 1 To Nlig Step 2
      Range("B" & Lig).Value = Range("A" & L).Value
      Range("C" & Lig).Value = Range("A" & L + 1).Value
      Lig = Lig + 1
      Next
      End Sub

      A+
      Maurice
      0
      1. Merci pour votre réponse
        Mais je suis un bleu en excel et je n'ai aucune idée de ce qu'est une macro (j'imagine d'après ce que vous m'avez envoyé que c'est un mini programme mais je ne sais pas comment la faire fonctionner !!!!
        Alex
        0