Excel dupliquer des lignes

dram15 Messages postés 7 Statut Membre -  
dram15 Messages postés 7 Statut Membre -
Bonjour,

Je cherche à créer une macro permettant de dupliquer des lignes.

Supposons j'ai une feuille avec plusieurs colonnes:

Avant
Colonne 1 Colonne 2 Colonne 3
CMP10129905 DK435089 100%
CMP10129854 DK438546 100%

et j'aimerais la transformer de cette façons

Après
Colonne 1 Colonne 2 Colonne 3
CMP10129905 DK101345 30%
CMP10129905 DK102456 20%
CMP10129905 DK658978 50%
CMP10129854 DK345089 20%
CMP10129854 DK268365 25%
CMP10129854 DK346890 10%
CMP10129854 DK567908 10%
CMP10129854 DK476089 10%
CMP10129854 DK543785 10%
CMP10129854 DK657893 15%


Avec

DK435089 est composé de:
DK101345 30%
DK102456 20%
DK658978 50%
et DK438546 est composé de:
DK345089 20%
DK268365 25%
DK346890 10%
DK567908 10%
DK476089 10%
DK543785 10%
DK657893 15%
Comment pourrais-je faire?

Merci par avance
A voir également:

12 réponses

f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,

Par quel miracle pouvons nous savoir DK435089 est composé de: .......
A+
0
dram15 Messages postés 7 Statut Membre
 
En fait le DK435089 est un matériel complexe, qui est composé de plusieurs matériaux normaux.

En gros je cherche à faire une décomposition par matériel, j'espére que c'est plus claire pour vous.

Cdlt
0
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Re,

j'espére que c'est plus claire pour vous.Non, quelles regles appliquez vous et ou se trouvent les composants????????
0
dram15 Messages postés 7 Statut Membre
 
En gros j'ai une première feuille avec pour chaque compo, le complex matériel qui lui est assigné.
Dans une autre feuille j'ai la décomposition du complex matériel en différent matériel avec leur pourcentage. et j'essaie de créer un nouvelle feuille avec les matériel normal et pourcentage spécifique.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Re,
D'accord, pourriez vous mettre votre fichier a dispo (si pas confidentiel) sur: https://www.cjoint.com/ copier le lien cree.

Merci
0
dram15 Messages postés 7 Statut Membre
 
je vous ai envoyé un exemple
0
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Re,
Par quel chemin??? Ou est le lien??
0
dram15 Messages postés 7 Statut Membre
 
0
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Re,

Essayez ceci

Click sur le bouton feuil1, resultat feuil3

https://www.cjoint.com/?BLdtKfjCtRK

A+
0
dram15 Messages postés 7 Statut Membre
 
ok merci et si je voulais supprimer la ligne des 100% sur la feuille 3.

Que pourrais ajouter dans le code la macro?
0
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,

Remplacez le code existant par celui-ci

Sub Bouton2_Clic()
  Dim Plage1 As Range, Cel As Range, Col_A As Range
  Dim Wk1, Wk2, Wk3
  
  Set Wk1 = Worksheets("feuil1")
  Set Wk2 = Worksheets("feuil2")
  Set Wk3 = Worksheets("feuil3")
  
  Set Plage1 = Wk1.Range("A2:A" & Wk1.Range("A" & Rows.Count).End(xlUp).Row)
  Set Plage2 = Wk2.Range("A1:A" & Wk2.Range("A" & Rows.Count).End(xlUp).Row)
  For Each Cel In Plage1
    If Cel <> "" Then
      'DK recherche
      DK = Wk1.Range("F" & Cel.Row)
      'Recherche si DK existe
      Nbre = Application.CountIf(Plage2, DK)
      
      If Nbre = 1 Then    'DK existe
        Lig = 1
        'Recherche ligne DK
        Lig = Wk2.Columns("A").Find(DK, Wk2.Cells(Lig, "A"), , xlWhole).Row
        'Ligne DK composants
        LigC = Lig + 1
        'Tant qu'il y a un composant pour ce DK
        Do While Wk2.Cells(LigC, "C") <> ""
          'pour la dernière ligne de la colonne A
          derlig = Wk3.Range("A" & Rows.Count).End(xlUp).Row + 1
          Wk3.Range("A" & derlig) = Cel
          'DK Composants
          Wk3.Range("B" & derlig) = Wk2.Cells(LigC, "C")
          '%DK Composants
          Wk3.Range("C" & derlig) = Wk2.Cells(LigC, "E")
          LigC = LigC + 1
        Loop
      End If
    End If
  Next Cel
End Sub


Bonne suite
0
dram15 Messages postés 7 Statut Membre
 
Merci beaucoup cela fonctionne parfaitement
Cordialement
0