Définir un modèle de feuille excel avec nom variable

Résolu
niikkoo Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 4 septembre 2007 - 31 août 2005 à 12:22
niikkoo Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 4 septembre 2007 - 1 sept. 2005 à 09:44
Bonjour,
voila ma problématique:
j'entre dans un userform un numéro d'affaire.
chaque feuille du classeur correspond à un numero d'affaire sur laquelle s'effectue un traitement.
mon pb est que si le numéro d'affaire n'existe pas au prealable, cad si la feuille excel n'existe pas, je veux creer une feuille dont la propriété name=n° d'affaire, selon un modèle de feuille excel prédéfini.
le pb est que, semble t'il, la propriété name d'un model excel n'est pas variable....
il y a dc conflit entre le nom que je veux donner à la feuil et le nom du modèle sur la base duquel elle est crée
voici le code que j'ai essayé de mettre en oeuvre:
ActiveWorkbook.Sheets.Add.Name = saisie.Controls("txtnaff" & j).Value
Type:= _
"MAC OS X:Applications:Microsoft Office 2004:Modèles:Mes modèles:modèle_planning.xlt"

mais il ne marche pas
merci pour les idées

Niikko

3 réponses

niikkoo Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 4 septembre 2007
1 sept. 2005 à 09:44
Merci pour vos reponses....
diegoch m'a mis sur la voie effectivement il fallait placer des parentheses quelque part:
ActiveWorkbook.Sheets.Add(Type:= _
"MAC OS X:Applications:Microsoft Office 2004:Modèles:Mes modèles:modèl_planning.xls").Name = saisie.Controls("txtnaff" & j).Value
Voilà
la solution de valtrase devrait marcher mais je suis pas encore à l 'aise avec les fonctions
Niikko
3
Diegoch Messages postés 56 Date d'inscription vendredi 30 mars 2001 Statut Membre Dernière intervention 7 septembre 2011 6
31 août 2005 à 13:36
ActiveWorkbook.Sheets.Add.Name = saisie.Controls("txtnaff" & j).Value Type:="MAC OS X:Applications:Microsoft Office 2004:Modèles:Mes modèles:modèle_planning.xlt"

La formule parait correcte, a une chose près, tu oublie les parentheses pour la definition du Type :
ActiveWorkbook.Sheets.Add.Name saisie.Controls("txtnaff" & j).Value ( Type: _ "MAC OS X:Applications:Microsoft Office 2004:Modèles:Mes modèles:modèle_planning.xlt")

Je pense que de cette façon tu n'aura plus ton message d erreur

Bon prog.
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
1 sept. 2005 à 01:20
Salut,
Le prob viens peut-être du fait que tu essayes d'ajouter un modèle dans un classeur normal.
Pourquoi ne pas créer une feuille dans ton classeur qui te servira en cas de ou le num n'éxiste pas. tu donnes a cette feuilleles la propriété xlVeryhidden et aprés tu n'as plus qu'a faire un copier coller et de changer le nom
Cela devrai ressembler a cela

If Not FeuilleExiste("N°D'affaire") Then CreateSheet saisie.Controls("txtnaff" & j).Value

'************** A METTRE DANS UN MODULE
Function FeuilleExiste(Nom$) As Boolean
On Error Resume Next
FeuilleExiste = Sheets(Nom).Name <> ""
Err.Clear
End Function

'************** A METTRE DANS UN MODULE
'** rSheet ne sert que si tu veux réafficher la feuille de départ
Function CreateSheet(Optional rName As String = "NomParDéfaut") As Boolean
Dim rSheet As String
If FeuilleExiste(rName) Then Exit Function


rSheet = ActiveSheet.Name


On Error GoTo CreateSheet_Err


Worksheets("TaFeuilleModèle").Copy After:=Worksheets(Sheets.Count)
With ActiveSheet
.Name = rName
.Visible = xlSheetVisible
End With
CreateSheet = True
Sheets(rSheet).Select
Exit Function
CreateSheet_Err:
MsgBox Err.Description, vbCritical, "ErrApplication"
CreateSheet = False


End Function

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
Rejoignez-nous