Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Créer des lignes en fonction d'un code

JiBee

XLDnaute Nouveau
Bonjour,

Je vous soumets mon problème en quelques mots :

J'ai un fichier de plus de 1000 lignes qui reprend des infos individuelles de chaque salarié.

Sur la ligne d'un salarié, une colonne indique un code précis, qui correspond au cumul des produits qu'il souhaite.
cela veut dire qu'en réalité, j'ai 5 produits possibles, donc il peut avoir le 1er et le 2ème, le 1er et le 3ème ou bien, le 1er, le 2ème et le 3ème...etc...
le 1 est obligatoire, (il me semble qu'il y a 14 cas possibles)

si le salarié a plusieurs produits, j'aimerais créer une nouvelle ligne pour chaque produit, qui en plus du code salarié, indique dans une nouvelle colonne le libellé de chaque produit.
la ligne initiale sera pour le produit 1, puis une ligne par produits.

En PJ, un exemple qui sera peut être plus clair.

Merci par avance à celles et ceux qui auront des solutions à me proposer.

JiBé
 

Pièces jointes

  • TEST_gms.xlsx
    10.4 KB · Affichages: 8

chris

XLDnaute Barbatruc
Bonjour

Une solution PowerQuery intégré à Excel

Quant la source évolue, actualiser par un clic droit dans le tableau de résultats ou par Données, Actualiser Tout
 

Pièces jointes

  • gms_pq.xlsx
    20.8 KB · Affichages: 4

JHA

XLDnaute Barbatruc
Bonjour à tous,
Bonjour chris,

Je ne sais pas "splitter" les caractères dans Power Query donc en 2 temps

1) splitter les caractères avec la fonction stxt()
2) liste réalisée avec Power Query

JHA
 

Pièces jointes

  • TEST_gms.xlsx
    21.6 KB · Affichages: 0

JiBee

XLDnaute Nouveau
Tout d'abord merci à tous les 2 pour vos réponses rapides,

je ne connais pas du tout Power Query, je vais donc me pencher dessus tout de suite.

Par contre, je me demande si mon exemple était le bon puisque les codes ne seront pas une partie du libellé final mais un code alpha,

par Exemple
DA43 = produit 1
DA37 = produit 1 et produit 2

est ce adaptable facilement ?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous ,

Une solution par VBA. Cliquer sur le bouton Hop!
Le code est dans le module associé à la feuille "Feuil1"

nota: le tableau résultat détruit le tableau initial mais les cliques successifs sur le bouton sont acceptés. Pour ma part, je préfère quand le tableau résultat est à un autre emplacement que le tableau source. Le demander si nécessaire.

Remarque: vous pouvez jeter ce travail à la poubelle puisque le fichier n'était pas représentatif .

Code:
VB:
Sub Multiplier()
Dim derlig&, t, Tot&, ref, i&, j&, N&
   With Sheets("Feuil1")
      derlig = .Cells(4, "a").End(xlDown).Row
      t = .Range(.Cells(4, "a"), .Cells(derlig, "c"))
      ref = ""
      For i = 2 To UBound(t)
         If t(i, 1) <> ref Then
            Tot = Tot + Len(t(i, 2))
            ref = t(i, 1)
         End If
      Next i
      ReDim r(1 To Tot + 1, 1 To 3)
      For j = 1 To 2: r(1, j) = t(1, j): Next
      r(1, 3) = "code produits 2"
      N = 1
      For i = 2 To UBound(t)
         If t(i, 3) = 1 Or t(i, 3) = "" Then
            For j = 1 To Len(t(i, 2))
               N = N + 1
               r(N, 1) = t(i, 1): r(N, 2) = t(i, 2): r(N, 3) = Mid(t(i, 2), j, 1)
            Next j
         End If
      Next i
      .Cells(4, "a").Resize(UBound(r), UBound(r, 2)) = r
   End With
End Sub
 

Pièces jointes

  • JiBee- Multiplier- v1.xlsm
    19.9 KB · Affichages: 1
Dernière édition:

JiBee

XLDnaute Nouveau
Arf !

je vous présente mes excuses.

Le fichier en question n'est pas encore en ma possession, je tente simplement d'anticiper la galère pour moi !
c'est pourquoi, j'ai tenté de créer un fichier exemple, sans penser que le code produit de départ serait littéralement la base de la création des lignes suivantes...

J'imaginais pouvoir remplacer des chaines de caractères de vos réponses par les miennes pour adapter et obtenir le résultat voulu.

Désolé de vous avoir fait perdre du temps, ce n'était évidemment pas mon intention.

Si power query est l'outil à même de résoudre mon problème, je vais regarder comment il fonctionne et tenter d'arriver à mes fins.

Merci à vous !
 

JiBee

XLDnaute Nouveau
Il serait "sympa" de fournir le fichier réel (du moins un extrait sans donnée confidentielle) dès que vous en disposerez.
La base du code devrait être relativement aisée à modifier donc pas trop de temps perdu
Je vais faire comme ça !

je vais prendre le temps d'avoir le fichier final à traiter et de faire appel à vos compétences.
Je n'imaginais pas que 3 personnes, dans l'heure qui suit, me proposerait un résultat !!!

Merci encore

Bonne soirée
 

JiBee

XLDnaute Nouveau
Je vais faire comme ça !

je vais prendre le temps d'avoir le fichier final à traiter et de faire appel à vos compétences.
re-bonjour à tous,

Je viens de récupérer un fichier test qui ressemble exactement à ce que sera mon fichier final !

On retrouve dans ce fichier une ligne par IDF avec le code associé.
Mon souhait serait d'avoir par exemple pour le 1er IDF qui est le 6516

6516 I
6516 J
6516 k
6516 l
6516 m

En fait, j'ai surtout besoin de savoir comment faire pour pouvoir répéter l'action chaque fois que j'en aurai besoin..

Merci par avance de votre aide

bonne journée
 

Pièces jointes

  • test code.xlsx
    12.6 KB · Affichages: 1

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…