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

[Résolu]
Signaler
Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
4 septembre 2007
-
Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
4 septembre 2007
-
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

Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
4 septembre 2007

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
56
Date d'inscription
vendredi 30 mars 2001
Statut
Membre
Dernière intervention
7 septembre 2011
4
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.
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
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é