Bonjour,

Je débute en VBA et je recherche une solution sur Excel qui me dépasse pour le moment malgré mes innombrables recherches sur internet.

Voilà mon problème, j'ai un tableau général sur ma première feuille qui me sert à lister l'ensemble des véhicules dont j'ai la gestion (1 véhicule par ligne) et les autres feuilles représentent la fiche détaillée de chaque véhicule.

J'ai créé un code qui me permet en cliquant sur un bouton de créer une feuille véhicule pour chaque ligne du tableau général et avec comme nom de chaque feuille le modèle et de l'immat correspondant à la "Liste" (colonne "MODEL" + "IMMAT" du tableau général), comme ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub CommandButton1_Click()
Dim nom, c
Dim strNomFeuille As String
    For Each c In Range("Liste")
    nom = c.Value
    strNomFeuille = nom
        If FeuilleInexistante(strNomFeuille) = False Then
        ' "ne rien faire"
        Else
        Sheets("Modèle").Cells.Copy
        Sheets.Add Count:=1, after:=Worksheets(Worksheets.Count)
        Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
        , Transpose:=False
        ActiveSheet.Name = nom
        MsgBox "Feuille " & nom & " créée!"
        End If
    Next c
End Sub
Avec comme module :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Public Function FeuilleInexistante(ByVal strNomFeuille As String) As Boolean
'Retourne TRUE si strNomFeuille est le nom d'une feuille qui n'existe pas dans le classeur actif
 
FeuilleInexistante = IsError(Evaluate("='" & strNomFeuille & "'!A1"))
 
End Function
Maintenant, je souhaiterai remplir automatiquement chaque feuille véhicule par les données des lignes du tableau général correspondant au véhicule de la feuille (exemple : immatriculation, marque, modèle).
Je ne sais pas si je suis très clair donc je vous joints le fichier :

Fichier joint dans vos discussions
Merci d'avance pour votre aide.

Cordialement.