Vb Excel : Mise en forme et modèle
Résolu
Melycea
-
Melycea -
Melycea -
Bonjour à tous,
J'ai créé une macro qui permet de créer une nouvelle feuille dans un autre classeur après avoir taper son nom dans un userform.
Je voudrai que toutes les nouvelles feuilles créées aient la même mise en forme.
Pour cela, j'ai créé un modèle que j'ai appelé Feuil.xlt, mais je n'arrive pas à l'insérer dans ma macro au moment de la création de la nouvelle feuille.
Voici ce que j'ai essayé :
Merci par avance
J'ai créé une macro qui permet de créer une nouvelle feuille dans un autre classeur après avoir taper son nom dans un userform.
Je voudrai que toutes les nouvelles feuilles créées aient la même mise en forme.
Pour cela, j'ai créé un modèle que j'ai appelé Feuil.xlt, mais je n'arrive pas à l'insérer dans ma macro au moment de la création de la nouvelle feuille.
Voici ce que j'ai essayé :
' Ajoute une feuille dans le classeur2
NumFeuil = Workbooks(2).Worksheets.Count 'nombre de feuilles
Workbooks(2).Sheets.Add after:=Workbooks(2).Worksheets(NumFeuil) Workbooks(2).Sheets(NumFeuil + 1).Name = TextBox1.Value
' Mise en page de la nouvelle feuille à partir du modèle
Workbooks("C:\Documents and Settings\Application Data\Microsoft\Templates\Feuil.xlt").Sheets(1).Range("A1:E80").Copy _
Destination:=Workbooks(2).Sheets(NumFeuil + 1).Range("A1")
' Ferme le UserForm
Unload Me
Merci par avance
A voir également:
- Vb Excel : Mise en forme et modèle
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel trier par ordre croissant chiffre - Guide
3 réponses
Bonjour,
essaie comme ca :
' Ajoute une feuille dans le classeur2
NumFeuil = Workbooks(2).Worksheets.Count 'nombre de feuilles
Workbooks(2).Sheets.Add after:=Workbooks(2).Worksheets(NumFeuil) Workbooks(2).Sheets(NumFeuil + 1).Name = TextBox1.Value
a=activeworkookb.name
' Mise en page de la nouvelle feuille à partir du modèle
Workbooks.Open "C:\Documents and Settings\Application Data\Microsoft\Templates\Feuil.xlt"
Sheets(1).seleect
Range("A1:E80").Copy
workbooks(a).activate
Sheets(NumFeuil + 1).select
Range("A1").select
activesheet.paste
workbooks("Feuil.xlt").close
' Ferme le UserForm
Unload Me
essaie comme ca :
' Ajoute une feuille dans le classeur2
NumFeuil = Workbooks(2).Worksheets.Count 'nombre de feuilles
Workbooks(2).Sheets.Add after:=Workbooks(2).Worksheets(NumFeuil) Workbooks(2).Sheets(NumFeuil + 1).Name = TextBox1.Value
a=activeworkookb.name
' Mise en page de la nouvelle feuille à partir du modèle
Workbooks.Open "C:\Documents and Settings\Application Data\Microsoft\Templates\Feuil.xlt"
Sheets(1).seleect
Range("A1:E80").Copy
workbooks(a).activate
Sheets(NumFeuil + 1).select
Range("A1").select
activesheet.paste
workbooks("Feuil.xlt").close
' Ferme le UserForm
Unload Me
Merci pour ta réponse.
ça me créé bien la feuille comme je voulais mais par contre, à chaque fois que j'exécute la macro, le nom de mon modèle change : Feuil1; Feuil2; Feuil3 ...
Et du coup, ça bugue au moment de la fermer.
Je vois pas trop comment remédier à ce problème.
ça me créé bien la feuille comme je voulais mais par contre, à chaque fois que j'exécute la macro, le nom de mon modèle change : Feuil1; Feuil2; Feuil3 ...
Et du coup, ça bugue au moment de la fermer.
Je vois pas trop comment remédier à ce problème.
Bonjour,
je ne vois pas pourquoi ca change le nom de ton modèle!!!
A moins que tu ais une autre macro qui s'éxécute entre deux.
As-tu fait le pas à pas pour voir quand est-ce que cela renommait ton modèle?
Le pas à pas se fait en appuyant sur F8
je ne vois pas pourquoi ca change le nom de ton modèle!!!
A moins que tu ais une autre macro qui s'éxécute entre deux.
As-tu fait le pas à pas pour voir quand est-ce que cela renommait ton modèle?
Le pas à pas se fait en appuyant sur F8
toutes mes excuses, il y a des erreurs de saisie mais je sais pas si c'est ca qui provoque le pb:
' Ajoute une feuille dans le classeur2
NumFeuil = Workbooks(2).Worksheets.Count 'nombre de feuilles
Workbooks(2).Sheets.Add after:=Workbooks(2).Worksheets(NumFeuil) Workbooks(2).Sheets(NumFeuil + 1).Name = TextBox1.Value
a=activeworkook.name
' Mise en page de la nouvelle feuille à partir du modèle
Workbooks.Open "C:\Documents and Settings\Application Data\Microsoft\Templates\Feuil.xlt"
workbooks("feuil1.xlt").Activate
Sheets(1).select
Range("A1:E80").Copy
workbooks(a).activate
Sheets(NumFeuil + 1).select
Range("A1").select
activesheet.paste
workbooks("Feuil.xlt").close
' Ferme le UserForm
Unload Me
' Ajoute une feuille dans le classeur2
NumFeuil = Workbooks(2).Worksheets.Count 'nombre de feuilles
Workbooks(2).Sheets.Add after:=Workbooks(2).Worksheets(NumFeuil) Workbooks(2).Sheets(NumFeuil + 1).Name = TextBox1.Value
a=activeworkook.name
' Mise en page de la nouvelle feuille à partir du modèle
Workbooks.Open "C:\Documents and Settings\Application Data\Microsoft\Templates\Feuil.xlt"
workbooks("feuil1.xlt").Activate
Sheets(1).select
Range("A1:E80").Copy
workbooks(a).activate
Sheets(NumFeuil + 1).select
Range("A1").select
activesheet.paste
workbooks("Feuil.xlt").close
' Ferme le UserForm
Unload Me