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

  • Votes
  • Date
  • Date décroissante
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
    Bonjour

    Un fichier qui permet de faire une liste

    http://www.cjoint.com/c/FGhidK6lTIx
    1. 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
    2. 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
    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. 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
    5. 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
    6. 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. Contributeur
        Bon jour
        pas très facile à comprendre, vous êtes sur que vous ne confondez pas lignes et colonnes dans vos explications?
        à vous lire