Dupliquer un model ( tableau 2) autant de fois qu'il y a de personne dans les tableau present dans la feuille 1


#1

Bonjour

je sais que j’ai déjà posté un post sur ce problème, mais je l’avais très mal expliqué la première fois et j’ai besoin d’aide assez rapidement

donc voici mon problème

Sur le fichier “Demo VN” ils y a trois feuille

La feuille 1 contient un tableau avec des noms et numéros IDDemo VN.xls (89,5 Ko)
*

la feuille MODEL contient le fameux tableau qu’il faut dupliquer, sur d’autres feuilles

en faite ce qu’il faudrait faire c’est dupliquer la feuille MODEL autant de fois qu’il y a de nom dans le tableau Présent sur la feuille 1

sachant que si on rajoute une personne en plus dans le tableau de la feuille 1 automatiquement il faut que la feuille MODEL soit aussi aussi dupliqué pour cette nouvel personne

je sais pas si c’est clair c’est vrai que c’est assez complexe a expliquer

et du coup il faudrait que chaque feuille MODEL dupliqué correspond une personne dans le tableau de la feuille 1


#2

Bonjour @Antoine_GALLEGO,

Voici une proposition:

Alors déjà il a un problème avec les doublons de la "Feuil1, donc j’ai déplacé les doublons en “H10:L17”.

Ensuite j’ai interdit les doublons dans la colonne “C” de “C2 à C500” avec cette formule dans “Validation des données”

=NB.SI($C$2:$C$500;C2)=1

Validation des données

Puis avec un code VBA dans le module1 associé avec le bouton “Go” dans la “Feuil1”.

Recopier la feuille “MODEL” avec le nom et le prénom en cellule “B1” et l’ID en cellule “B3”.
Pour chaque feuille “MODEL” la nommer avec le nom contenu dans la colonne “C”.

Code de la macro:

Sub Dupliquer_MODEL()
 Dim c As Range
 Dim x As Range
 Dim y As Range
 
 Application.ScreenUpdating = False
    
    Set c = Worksheets("Feuil1").Range("C2")
    Set x = Worksheets("Feuil1").Range("A2")
    Set y = Worksheets("Feuil1").Range("D2")
    Do Until IsEmpty(c)
        
        Worksheets("MODEL").Copy After:=Worksheets(ThisWorkbook.Sheets.Count)
        With Worksheets(ThisWorkbook.Sheets.Count)
            .Name = c.Value
            .Range("B1") = c.Value & "  " & y.Value
            .Range("B3") = x.Value
        End With
        Set c = c.Offset(1, 0)
        Set x = x.Offset(1, 0)
        Set y = y.Offset(1, 0)
    Loop
End Sub

Ton fichier en retour ICI==> Demo VN MODEL V1.xlsm (42,6 Ko)

Cordialement.