Vb Excel : Mise en forme et modèle

Résolu/Fermé
Melycea - 31 mai 2011 à 11:13
 Melycea - 31 mai 2011 à 15:34
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é :
    ' 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:

3 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
31 mai 2011 à 13:09
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
0
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.
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
31 mai 2011 à 15:26
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
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
31 mai 2011 à 15:27
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
0
Le changement de nom se faisait dès l'ouverture du modèle.
Mais du coup, j'ai fait une macro qui fait toute la mise en page, sans passer par le modèle...

Merci quand même pour ton aide
0