Copier des onglets via VBA
12francois12
Messages postés
14
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'utilise excel 2003 et je suis novice en visual basic.
J'ai un onglet type et une liste de société.
Je souhaiterai copier mon onglet type en renommant chaque nouvel onglet avec le nom des sociétés listées.
Pourriez vous m'aider à creer la commande dans Visual Basic??
Je vous remercie par avance.
J'utilise excel 2003 et je suis novice en visual basic.
J'ai un onglet type et une liste de société.
Je souhaiterai copier mon onglet type en renommant chaque nouvel onglet avec le nom des sociétés listées.
Pourriez vous m'aider à creer la commande dans Visual Basic??
Je vous remercie par avance.
2 réponses
-
Bonjour,
J'ai un onglet type et une liste de société OK. Ta liste de société comporte combien de noms? Elle se trouve ou (Feuillle : Feuil1, Range : E1:E120)?
Ton onglet (Feuille?) type s'appelle comment?
-
Merci de ta réponse,
Ma liste comporte
- 38 sociétés,
- se trouve dans la feuille "Maquette",
- Range (A5:A42)
Mon onglet type s'appelle "modèle"-
Alors :
Le code :Sub CreerOnglet() Dim Lig As Byte For Lig = 5 To 42 Sheets("modèle").Copy After:=Sheets(ThisWorkbook.Worksheets.Count) ActiveSheet.Name = Sheets("Maquette").Range("A" & Lig) Next End Sub
Mise en place :
- copier ce code,
- ouvrir le classeur,
- ALT+F11
- Insertion/Module,
- Coller,
- Fermer Visual Basic Editor
Utilisation :
- se placer sur la feuille Maquette,
- ALT+F8,
- Choix : "CreerOnglet",
- Cliquer sur "Exécuter"
Mise en garde :
Risque de plantage si :
- la liste des sociétés comporte des caractères spéciaux (/, | etc...),
- la liste des sociétés comporte des cellules vides,
- l'orthographe et la casse des noms de feuille "Maquette" et "modèle" n'est pas rigoureusement la même dans le code que dans le classeur.
Note : Tous ces risques peuvent aisément être contournés sous VBA. -
-
Bien sur que c'est possible.
Voici le code pour placer un bouton (CommandButton1) dans la feuille (Feuil3) de ton choix, avec, en prime, un test pour ne rien faire si l'onglet a déjà été créé :Private Sub CommandButton1_Click() Dim Lig As Byte For Lig = 5 To 10 If FeuilleExiste(Sheets("Maquette").Range("A" & Lig)) Then MsgBox "La feuille : " & Sheets("Maquette").Range("A" & Lig) & " existe déjà dans le classeur" Else Sheets("modèle").Copy After:=Sheets(ThisWorkbook.Worksheets.Count) ActiveSheet.Name = Sheets("Maquette").Range("A" & Lig) End If Next End Sub Function FeuilleExiste(stFeuille As String) As Boolean On Error Resume Next FeuilleExiste = Not (Sheets(stFeuille) Is Nothing) End Function -
-
-