Définir un modèle de feuille excel avec nom variable [Résolu]

niikkoo 50 Messages postés mercredi 20 juillet 2005Date d'inscription 4 septembre 2007 Dernière intervention - 31 août 2005 à 12:22 - Dernière réponse : niikkoo 50 Messages postés mercredi 20 juillet 2005Date d'inscription 4 septembre 2007 Dernière intervention
- 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
Afficher la suite 

3 réponses

Meilleure réponse
niikkoo 50 Messages postés mercredi 20 juillet 2005Date d'inscription 4 septembre 2007 Dernière intervention - 1 sept. 2005 à 09:44
3
Merci
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

Merci niikkoo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

Diegoch 56 Messages postés vendredi 30 mars 2001Date d'inscription 7 septembre 2011 Dernière intervention - 31 août 2005 à 13:36
0
Merci
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.
valtrase 936 Messages postés lundi 19 janvier 2004Date d'inscription 17 mars 2017 Dernière intervention - 1 sept. 2005 à 01:20
0
Merci
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é

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.