Duplication selon 2eme feuille

  • Initiateur de la discussion Initiateur de la discussion eric57
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eric57

XLDnaute Occasionnel
Bonjour le forum.

Je souhaite créer une duplication automatique de lignes en fonction d'un "groupe d'appartenance"

J'ai bien testé différents fichiers trouvés sur le forum, mais mes connaissances en excel ne me permettent pas d'adapter a mes besoins.

Je vous mets en pièce jointe un tableau

Feuil 1 (A traiter) : Les données tels qu'elles sont au départ. j'ai fait un exemple sur 2 références
Feuil 2 (Groupe) la liste en détail des marques qui composent le groupe d'appartenance
Feuil 3 ( Résultat) : Ce que je devrais obtenir en cliquant sur le bouton magique " Lancer la duplication"

Cela est il réalisable sous Excel ?

Les groupes ( 2 dans l'exemple) peuvent bien sur avoir de 2 à 30 marques

Merci d'avance à ceux qui voudront bien se pencher sur mon problème
 

Pièces jointes

Re : Duplication selon 2eme feuille

Justement, la marque n'est pas connue, mais on connait le groupe , donc le but c'est pour chaque ligne, la dupliquer autant de fois qu'on a de marques dans son groupe

Donc, feuil 1 , la 1ere colonne n'est qu'une référence pas utile dans notre exemple, la colonne 2 est le nom du groupe auquel appartient la référence de la machine présente dans la colonne 4 ou 5 .

Si je prend la ligne 2, j'ai une machine qui a pour nom 2109 ou code produit 2109D/DJ.

Je ne sais pas a quelle marque elle appartient, mais forcement une marque du groupe fagor.

Je veux donc dupliquer cette ligne par le nombre de marques présentent dans le groupe fagor .
Je vois que le groupe FAGOR a 10 marques, je dois donc dupliquer 10x la ligne 2
En ajoutant dans la colonne "marque" a chaque fois une des marques de ce groupe

En espérant que cette explication sera plus précise 🙂

Merci

Eric
 
Re : Duplication selon 2eme feuille

Bonjour Jbarbe , Eric

Petite variante
Version Jbarbe exécutée en 1.84 sec
Version Camarchepas en 0.06 sec

Le challenge est ouvert ....

Code:
Sub traite()
Dim Chrono As Double, chrono2 As Double
Dim Inventaire As Variant, Modele As Variant
Dim Reference As Variant
Dim MaxModele As Long, Nblignes As Long
Dim Pointeur As Long, GroupeCol As Long, Actuel As Long
Dim Trouve As Range
Dim Groupe As String
Chrono = Timer
Application.ScreenUpdating = False
 Sheets("Résultat").Range("A2:E" & Sheets("Résultat").Range("A" & Rows.Count).End(xlUp).Row).ClearContents
 Inventaire = Sheets("A Traiter").Range("A2:E" & Sheets("A Traiter").Range("A" & Rows.Count).End(xlUp).Row)
Nblignes = 2
 For Pointeur = 2 To UBound(Inventaire, 1)
   If Inventaire(Pointeur, 2) <> Groupe Then
     Set Trouve = Sheets("Groupe").Range("A1:BA1").Find(Inventaire(Pointeur, 2), lookat:=xlValue)
     If Not Trouve Is Nothing Then
       Groupe = Trouve.Text
       GroupeCol = Trouve.Column
       MaxModele = Sheets("Groupe").Cells(Rows.Count, GroupeCol).End(xlUp).Row
       Modele = Sheets("Groupe").Range("A2:A" & MaxModele).Offset(0, GroupeCol - 1)
      Else
       MsgBox "Marque non trouvée"
       Exit Sub
    End If
   End If
   For Actuel = 1 To MaxModele - 1
    Reference = Array(Inventaire(Pointeur, 1), Inventaire(Pointeur, 2), Modele(Actuel, 1), Inventaire(Pointeur, 4), Inventaire(Pointeur, 5))
    Sheets("résultat").Range("A" & Nblignes & ":E" & Nblignes) = Reference
    Nblignes = Nblignes + 1
   Next Actuel
 Next Pointeur
Application.ScreenUpdating = True
chrono2 = Timer - Chrono
End Sub
 
Re : Duplication selon 2eme feuille

Merci Jbarbe et camarchepas pour votre implication

J'ai utilisé la version de camarchepas qui marche très bien, (sauf la ligne 2 de la feuille 1 qui n'est pas dupliqué, j'ai résolu en noircissant cette ligne)

J'ai ajouté un bouton "vider" et un bouton " copier ma liste de résultat" et cela fonctionne très bien et très vite.

Je ne sais pas si dans le code, le temps de travail s'affiche quelque part mais avec 1400 lignes cela a pris env 15 secondes

Encore merci a vous 2 , et à certainement une autre fois ...

Eric
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
  • Question Question
2 3 4
Réponses
48
Affichages
7 K
J
Réponses
18
Affichages
4 K
Retour