Création ligne

Résolu
Bonjour à tous,
voici mon problème.
J'ai un tableau avec des cellules ( toujours dans la même colonne) qui présentent plusieurs valeurs Exemple B1/B3/B4/C6/C9/B12
Je voudrais trouver une formule qui crée autant de lignes que le nombre des valeurs de cette cellule et qui copie un valeur par ligne.
Donc B1/B3/B4/C6/C9/B12
devient
B1
B3
B4
C6
C9
B12
Est-il possible?
Merci beaucoup
Dingo123

9 réponses

Résumé de la discussion

Un utilisateur demande comment dans Excel transformer une cellule contenant plusieurs valeurs séparées par des barres obliques (par exemple B1/B3/B4/C6/C9/B12) en autant de lignes, une valeur par ligne. Plusieurs réponses indiquent que rien dans Excel ne permet de faire cela directement avec une formule unique et qu’il faut envisager une solution VBA ou macros pour scinder et répartir les valeurs. Des échanges explorent des alternatives comme l’ajout d’une colonne de référence ou la complexité croissante, mais la plupart conviennent que VBA est la voie la plus fiable dans ce cas. En pratique, les contributeurs évoquent que la solution exacte dépend du contexte et que certains fichiers nécessitent une approche personnalisée impliquant des scripts pour automatiser l’opération.

Bobot (l’IA à votre service)
  1. Contributeur
    Bon jour
    pas très facile à comprendre, vous êtes sur que vous ne confondez pas lignes et colonnes dans vos explications?
    à vous lire
    1. C'est plus clair comme-ça?
      merci

      MAILLOT B1/B3/B5/B9/C4/C23 € 69,50
      Je voudrais que ça devienne
      MAILLOT B1 € 69,50
      MAILLOT B3 € 69,50
      MAILLOT B5 € 69,50
      MAILLOT B9 € 69,50
      MAILLOT C4 € 69,50
      MAILLOT C23 € 69,50
      1. maillot c'est dans une colonne, B1/B3/B5/B9/C4/C23 dans un'autre et le prix dans un'autre encore
        1. Contributeur
          Ok là c'est clair, mais avec des données dans la même cellule il faudra passer par VBA pour arriver directement à ce que vous voulez
          Et VBA n'est pas de ma compétence
          Tout ce que je peux proposer est ce qui est expliqué dans ce modèle
          https://www.cjoint.com/c/FGfnQjDmsRV

          bonne chance
          crdlmnt
      2. Merci pour la réponse; c'est quoi la VBA?
        1. Contributeur
          VBA, c'est l'utilisation des macros, et donc la création avec ce langage informatique de programmes dédiés à un certain travail. Mais là, il faut des spécialiste et il y en a d'excellents ici.
          Donc ça devrait fonctionner, normalement!
          Bonne route
          crdlmnt
      3. Contributeur
        Bonjour dingo123

        Voici ce que j'ai compris

        http://www.cjoint.com/c/FGfn7gekVlx
        1. merci Pilou,
          mais maillot est dans une colonne, B1/B2/B3...... dans un'autre et le prix dans un'autre encore, et j'ai 200 lignes . Comment utiliser ta formule?

          cordialement
          dingo 123
        2. Contributeur
          @dingo123remplacer "Maillot" par l'adresse de la cellule (exemple B5 si maillot est en colonne b et en ligne 5)
          idem pour le prix mettre l'adresse de la cellule exemple C6
        3. @PHILOU10120Bonjour
          je ne vois pas "maillot" dans la formule
          cordialement
        4. Contributeur
          @dingo123la formule modifié il fallait enlever la partie qui cherchait maillot et la remplacer par B2 et idem pour le prix, la dernière partie de la formule récupérant le prix.

          =SIERREUR($B$2&" "&DROITE(GAUCHE(SUBSTITUE($A$1;"/";"-";LIGNE()-2);CHERCHE("-";SUBSTITUE($A$1;"/";"-";LIGNE()-3);1)-1);2)&" € "&TEXTE(C2;"##0,00");"")

          B2 = la cellule contenant maillot C2 celle contenant le prix dans cet exemple
      4. Vaucluse help!!
        J'ai copié les formules du tableau et tout marche sauf que après la 6ème ligne ne fonctionne plus ... mon tableau fait 200 lignes!

        Cordialement
        1. Contributeur
          jene sais pas quelle sont vos formules, ne sachant pas quels champs de départ vous avez utilisé mais dans les formules, vous avez des champs "bloqués" qu'il faut aligner sur vos dimensions:
          si on prend mon modèle
          en J2 ( la formule est différente des autres on n'y touche pas

          en J3
          =SIERREUR(SI(NB.SI(DECALER($A$1;EQUIV(J2;$A$2:$A$500;0);1;;6);"<>")>NB.SI($J$2:J2;J2);J2;INDEX($A$2:$A$500;EQUIV(J2;$A$2:$A$500;0)+1));"")

          en K2
          =SIERREUR(DECALER($A$1;EQUIV(J2;$A$2:$A$500;0);NB.SI($J$2:J2;J2));"")

          en L2
          =SIERREUR(INDEX($H$2:$H$500;EQUIV(J2;$A$2:$A$500;0));"")

          si vous transformez les $A$5 en $A$500 et $H$5 en $H$500 (en gras ci dessus, vous pourrez aller jusqu'à la ligne 500)
          crdlmnt
        2. @VaucluseMerci pour la réponse
          je vais essayer ce matin , autrement je poste le tableau

          Cordialement
          dingo 123
      5. Contributeur
        Bonjour
        ça n'était pas prévu comme ça et ça va être beaucoup plus compliqué. Vous n'aviez pas dit que vous pouviez avoir plusieurs fois le même nom dans la colonne A.
        Alors on va réfléchit la dessus, mais il faudra probablement mieux passer par du VBA (moi je ne connais pas)

        a+ si je trouve
        1. Contributeur
          voila une solution qui utilise deux colonnes pour spécifier les noms. Ces deux colonnes sont masquées (colonne A et colonne O)
          la colonne P ne sert qu'à transformer les codes utilisés, pour les retrouver dans le format initial (sans le _xx qui suit ) mais si l'affichage ne vous gène pas , vous pouvez gardertseulement la colonne O (par contre la A est indispensable)

          https://www.cjoint.com/c/FGgjhbsVBrV

          Par ailleurs et pour info:
          j'ai corrigé des noms dans votre colonne, certain ont des blancs qui suivent le nom d'autre pas) je les ai supprimés (les blancs!)pour ne pas les différencier, avec cette outil:
          touche ctrl et H en haut taper un blanc, en bas rien et remplacer tout (10 noms trouvés)
          crdlmnt
        2. @VaucluseEncore une fois merci Vaucluse,
          ça m'a l'air compliqué! Je pars quelque jour, je vais vois ça ce WE.
          Merci pour le temps que vous m'avez dedié.
          Cordialement
        3. Contributeur
          Ca n'est pas plus compliqué que le précédent, sauf que dans celui ci on fait référence à la colonne rajoutée A qui spécifie différemment chaque nom identique au fur et à mesure de l'avancé vers le bas du tableau.
          Afficher bien les colonnes masquées pour vous y retrouver
          Bon courage et bon WE
        4. @VaucluseMagnifique,
          mais j'avais simplifié le tableau, en réalité il faudrait ajouter une colonne devant la colonne B avec les Numéros de référence de chaque modèle.
          Exemple:
          1342 ABITO
          1500 SPOLVERO
          1501 GIACCA

          et ainsi de suite.....Le numéros des références sont chaque fois uniques

          Je vais voir si j'arrive à m'en sortir.

          Merci
          Cordialement
        5. Contributeur
          @dingo123C'est bien dommage que vous ne l'ayez pas dit avant.!!!
          Si le N°de référence est spécifique, c'est lui qu'il faut utiliser avec la 1° version proposée et laisser tomber ce 2° modèle
          Bon courage
      6. Contributeur
        Bonjour

        Un fichier qui permet de faire une liste

        http://www.cjoint.com/c/FGhidK6lTIx