Transformer des lignes en colonnes dans excel

Résolu
Alex -  
Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   -
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. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    bonsoir,

    sélectionner la colonne, clic droit/Copier
    activer une cellule vide, clic droit/collage spécial/transposer
    0
  2. tessel75
     
    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. Alex
       
      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
  3. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    0
    1. tessel75
       
      Bonjour les Antilles!
      De l'avantage des questions convenablement posées ...
      Cordialement
      0
    2. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
       
      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
  4. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    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. Alex
       
      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. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
       
      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. Alex
       
      Ca ne marche toujours pas.
      Un grand merci à vous pour votre aide
      0
    4. Alex
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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. Alex
       
      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
  7. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour à tous,

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

      seulement mon problème n'est toujours pas résolu!!!!!!
      0
  8. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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. Alex
       
      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
  9. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    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. Alex
       
      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. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
       
      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. Alex
       
      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. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
       
      Tant mieux si tu as pu apprendre et retenir de nouvelles manipulations et formules.
      Elles te seront utiles pour la suite ...

      Amicalement.
      0
  10. foo
     
    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. Alex
       
      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