1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

Répartir des mots séparés par un "/" dans plusieurs cellules

Discussion dans 'Forum Excel' démarrée par ttlan, 12 Octobre 2017 à 18:01.

  1. ttlan

    ttlan XLDnaute Nouveau

    Inscrit depuis le :
    8 Mai 2007
    Messages :
    26
    "J'aime" reçus :
    0
    Bonjour,

    J'ai une colonne avec des mots (1, 2 ou 3 mots) séparés par des " / ", comme :
    Pierre
    Pierre / Paul
    Pierre / Paul / Jaques

    Je voudrais séparer ces mots dans trois colonnes (en répétant le dernier mot pour toujours compléter les 3 colonnes). Obtenir quelque chose comme la pièce jointe.

    J'arrive à me débrouiller avec Pierre / Paul, mais lorsqu'il n'y a pas de "/" ou lorsqu'il y en a 2, je patauge.

    Est-ce que quelqu'un a une solution simple et élégante ?

    Merci

    Cordialement
     

    Pièces jointes:

  2. Dugenou

    Dugenou XLDnaute Barbatruc

    Inscrit depuis le :
    21 Février 2005
    Messages :
    6282
    "J'aime" reçus :
    219
    Sexe :
    Masculin
    Habite à:
    Lille
    Utilise:
    Excel 2010 (PC)
    Bonjour,
    voici une solution simple (simpliste même) mais pas élégante
    Cordialement
     

    Pièces jointes:

    • ttlan.xlsx
      Taille du fichier:
      9.4 Ko
      Affichages:
      13
  3. zebanx

    zebanx XLDnaute Occasionnel

    Inscrit depuis le :
    2 Août 2006
    Messages :
    404
    "J'aime" reçus :
    49
    Utilise:
    Excel 2003 (PC)
    Bonsoir ttlan, Bonsoir Dugenou

    Une autre possibilité par un code en VBA

    Et sinon, pourquoi ne pas utiliser le convertisseur en sélectionnant toute la colonne ?
    (délimité - autre et choisir /)

    ++ zebanx
     

    Pièces jointes:

  4. Dugenou

    Dugenou XLDnaute Barbatruc

    Inscrit depuis le :
    21 Février 2005
    Messages :
    6282
    "J'aime" reçus :
    219
    Sexe :
    Masculin
    Habite à:
    Lille
    Utilise:
    Excel 2010 (PC)
    Bonsoir Zebanx : j'y pensais aussi au départ mais cette manip ne répète pas la dernière valeur si vide
    Cordialement
     
  5. zebanx

    zebanx XLDnaute Occasionnel

    Inscrit depuis le :
    2 Août 2006
    Messages :
    404
    "J'aime" reçus :
    49
    Utilise:
    Excel 2003 (PC)
    Re- Dugenou,

    Je n'avais pas pris en compte cette demande supplétive.
    Un autre essai et il faut bien considérer dans l'inputbox à mettre "/ " et non "/" pour supprimer l'espace.

    ++
    zebanx
     

    Pièces jointes:

  6. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    23103
    "J'aime" reçus :
    1704
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Bonsoir ttlan, Dugenou, zebanx,

    3 formules assez simples en B1 C1 D1 du fichier joint :
    Code (Text):
    =GAUCHE(A1;TROUVE(" /";A1&" /")-1)

    =SI(A1=B1;B1;STXT(A1;NBCAR(B1)+4;TROUVE(" /";A1&" /";NBCAR(B1)+4)-NBCAR(B1)-4))

    =SI(OU(A1=B1;A1=B1&" / "&C1);C1;STXT(A1;NBCAR(B1)+NBCAR(C1)+7;9^9))
    A+
     

    Pièces jointes:

    Dernière édition: 12 Octobre 2017 à 21:48
  7. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    23103
    "J'aime" reçus :
    1704
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Re,

    Je viens de simplifier ma 3ème formule qui était compliquée.

    A+
     
    zebanx aime votre message.
  8. zebanx

    zebanx XLDnaute Occasionnel

    Inscrit depuis le :
    2 Août 2006
    Messages :
    404
    "J'aime" reçus :
    49
    Utilise:
    Excel 2003 (PC)
    Bonsoir Job75
    On a surtout pas l'habitude que tu te limites à seulement 2 propositions !! :D:D:D
    Le cap des 1700 j'aime est passé tiens ;).
    Et 23000 réponses depuis 2008 wa-ouhhh :rolleyes:


    edit :
    solution apportée par MaPomme, plus commode à utiliser, en VBA et venant d'un de ses derniers posts
     

    Pièces jointes:

    Dernière édition: 13 Octobre 2017 à 08:58
  9. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    23103
    "J'aime" reçus :
    1704
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Bonjour zebanx, le forum,

    Par curiosité j'ai voulu voir ce que donne le remplissage du tableau avec les 3 formules du post #6 :
    Code (Text):
    Sub Spliter()
    Application.ScreenUpdating = False
    With ActiveSheet.UsedRange.Offset(1)
      .Columns(2) = "=LEFT(TRIM(A2),FIND("" /"",TRIM(A2)&"" /"")-1)"
      .Columns(3) = "=IF(TRIM(A2)=B2,B2,MID(TRIM(A2),LEN(B2)+4,FIND("" /"",TRIM(A2)&"" /"",LEN(B2)+4)-LEN(B2)-4))"
      .Columns(4) = "=IF(OR(TRIM(A2)=B2,TRIM(A2)=B2&"" / ""&C2),C2,MID(TRIM(A2),LEN(B2)+LEN(C2)+7,9^9))"
      .Columns(2).Resize(, 3) = .Columns(2).Resize(, 3).Value
    End With
    End Sub
    Chez moi cette macro s'exécute en 1,1 milliseconde, celle du post précédent en 2,8 millisecondes.
    A+
     

    Pièces jointes:

    zebanx aime votre message.
  10. zebanx

    zebanx XLDnaute Occasionnel

    Inscrit depuis le :
    2 Août 2006
    Messages :
    404
    "J'aime" reçus :
    49
    Utilise:
    Excel 2003 (PC)
    Bonjour Job75

    C'est plus le côté de suppression des cellules en colonnes B à D (au cas où on en aurait laissés et qui n'auraient pas de correspondance en colonne A (=vide)) qui m'intéresse dans ta proposition qui touche, encore une fois, sa cible tant dans sa rédaction que sa rapidité d'exécution. On est habitué :)

    L'auteur du post a le choix en tout cas et cette dernière proposition devrait l'emporter.
    ++
    zebanx
     
    Dernière édition: 13 Octobre 2017 à 12:55

Partager cette page