OVH Cloud OVH Cloud

Enregistrer un modèle

4 réponses
Avatar
Fred64
Bonjour,
J'ai un fichier modèle et j'aimerai qu'une macro puisse m'enregistrer ce
fichier à la meme place (sans tenir compte du chemin du dossier) et sous le
meme nom. J'ai essayé ca mais ca enregistre directement dans Mes documents.
ActiveWorkbook.SaveAs Filename:=".\essai.xlt",
ConflictResolution:=xlOtherSessionChanges

Merci d'avance

4 réponses

Avatar
michdenis
Bonjour Fred64,

En supposant que j'ai compris ta demande,
Pour enregistrer un modèle sous un autre nom mais toujours comme modèle,

Attention, tu n'as droit qu'à un fichier portant le même nom par répertoire !

'-----------------------------
Sub Enregistrer()

Dim NomFichier As String
Dim Chemin As String
Chemin = "c:Atravail"
NomFichier = ThisWorkbook.Name

If LCase(Right(nomficher, 4)) <> ".xlt" Then
NomFichier = nomficher & ".xlt"
End If

ThisWorkbook.SaveAs Chemin & NomFichier, xlTemplate

End Sub
'-----------------------------


Salutations!


"Fred64" a écrit dans le message de news:
Bonjour,
J'ai un fichier modèle et j'aimerai qu'une macro puisse m'enregistrer ce
fichier à la meme place (sans tenir compte du chemin du dossier) et sous le
meme nom. J'ai essayé ca mais ca enregistre directement dans Mes documents.
ActiveWorkbook.SaveAs Filename:=".essai.xlt",
ConflictResolution:=xlOtherSessionChanges

Merci d'avance
Avatar
Fred64
Merci pour ta reponse michdenis,
Le probleme est justement au niveau du chemin: je voudrai qu'il enregistre
au meme chemin que l'original, peu importe ou le fichier se trouve.
J'espère que ma question est claire,
Salutations

"michdenis" a écrit dans le message de news:
e%
Bonjour Fred64,

En supposant que j'ai compris ta demande,
Pour enregistrer un modèle sous un autre nom mais toujours comme modèle,

Attention, tu n'as droit qu'à un fichier portant le même nom par
répertoire !

'-----------------------------
Sub Enregistrer()

Dim NomFichier As String
Dim Chemin As String
Chemin = "c:Atravail"
NomFichier = ThisWorkbook.Name

If LCase(Right(nomficher, 4)) <> ".xlt" Then
NomFichier = nomficher & ".xlt"
End If

ThisWorkbook.SaveAs Chemin & NomFichier, xlTemplate

End Sub
'-----------------------------


Salutations!


"Fred64" a écrit dans le message de news:

Bonjour,
J'ai un fichier modèle et j'aimerai qu'une macro puisse m'enregistrer ce
fichier à la meme place (sans tenir compte du chemin du dossier) et sous
le
meme nom. J'ai essayé ca mais ca enregistre directement dans Mes
documents.
ActiveWorkbook.SaveAs Filename:=".essai.xlt",
ConflictResolution:=xlOtherSessionChanges

Merci d'avance





Avatar
anonymousA
bonjour,

si tu as créé un fichier,celui-ci a un chemin désigné par ( si le
fichier est actif) par Thisworkbook.path .
Il te suffit donc de remplacer dans la proc communiquée par Mich Denis
Chemin = "c:Atravail par Chemin = thisworkbook.path & "" et de faire
quelques petites modifs de la proc en question pour enregistrer le
fichier en question comme un fichier modèle


'on controle si le fichier est un fichier ayant déjà enregistré ou pas
'si non,on enregistre le fichier en cours sur le répertoire courant
'au format modèle avec le nom du fichier en cours
If ThisWorkbook.Path <> "" Then
Chemin = ThisWorkbook.Path & ""
Else
Chemin = CurDir & ""
ThisWorkbook.SaveAs Chemin & ThisWorkbook.Name, xlTemplate
Exit Sub
End If

'si le fichier a déjà été enregistré une 1ere fois, on
'poursuit la procédure
NomFichier = ThisWorkbook.Name

'si le fichier n'est pas du type modèle , on crée une extension
'modèle. On suppose bien sur que le fichier que tu as ouvert a une
'extension de 3 caractères et possède au moins 2 caractères
'pour son nom , sinon le nom du fichier final peut être
'différent du nom initial et la procédure peut même planter.
If LCase(Right(NomFichier, 4)) <> ".xlt" Then
NomFichier = Left(NomFichier, Len(NomFichier) - 4) & ".xlt"
End If

'on enregistre le fichier au format modèle
'on pourrait mettre une invalidation du message
'd'alerte d'Excel sur l'écrasement du nouveau
'fichier sur l'ancien. C'est toi qui vois
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Chemin & NomFichier, xlTemplate

A+


Merci pour ta reponse michdenis,
Le probleme est justement au niveau du chemin: je voudrai qu'il enregistre
au meme chemin que l'original, peu importe ou le fichier se trouve.
J'espère que ma question est claire,
Salutations

"michdenis" a écrit dans le message de news:
e%

Bonjour Fred64,

En supposant que j'ai compris ta demande,
Pour enregistrer un modèle sous un autre nom mais toujours comme modèle,

Attention, tu n'as droit qu'à un fichier portant le même nom par
répertoire !

'-----------------------------
Sub Enregistrer()

Dim NomFichier As String
Dim Chemin As String
Chemin = "c:Atravail"
NomFichier = ThisWorkbook.Name

If LCase(Right(nomficher, 4)) <> ".xlt" Then
NomFichier = nomficher & ".xlt"
End If

ThisWorkbook.SaveAs Chemin & NomFichier, xlTemplate

End Sub
'-----------------------------


Salutations!


"Fred64" a écrit dans le message de news:

Bonjour,
J'ai un fichier modèle et j'aimerai qu'une macro puisse m'enregistrer ce
fichier à la meme place (sans tenir compte du chemin du dossier) et sous
le
meme nom. J'ai essayé ca mais ca enregistre directement dans Mes
documents.
ActiveWorkbook.SaveAs Filename:=".essai.xlt",
ConflictResolution:=xlOtherSessionChanges

Merci d'avance










Avatar
Fred64
Merci Anonymous, c'est exaxtement ce que je cherchai

@+
Fred

"anonymousA" a écrit dans le message de news:
4363592c$0$451$
bonjour,

si tu as créé un fichier,celui-ci a un chemin désigné par ( si le fichier
est actif) par Thisworkbook.path .
Il te suffit donc de remplacer dans la proc communiquée par Mich Denis
Chemin = "c:Atravail par Chemin = thisworkbook.path & "" et de faire
quelques petites modifs de la proc en question pour enregistrer le fichier
en question comme un fichier modèle


'on controle si le fichier est un fichier ayant déjà enregistré ou pas
'si non,on enregistre le fichier en cours sur le répertoire courant
'au format modèle avec le nom du fichier en cours
If ThisWorkbook.Path <> "" Then
Chemin = ThisWorkbook.Path & ""
Else
Chemin = CurDir & ""
ThisWorkbook.SaveAs Chemin & ThisWorkbook.Name, xlTemplate
Exit Sub
End If

'si le fichier a déjà été enregistré une 1ere fois, on
'poursuit la procédure
NomFichier = ThisWorkbook.Name

'si le fichier n'est pas du type modèle , on crée une extension
'modèle. On suppose bien sur que le fichier que tu as ouvert a une
'extension de 3 caractères et possède au moins 2 caractères
'pour son nom , sinon le nom du fichier final peut être
'différent du nom initial et la procédure peut même planter.
If LCase(Right(NomFichier, 4)) <> ".xlt" Then
NomFichier = Left(NomFichier, Len(NomFichier) - 4) & ".xlt"
End If

'on enregistre le fichier au format modèle
'on pourrait mettre une invalidation du message
'd'alerte d'Excel sur l'écrasement du nouveau
'fichier sur l'ancien. C'est toi qui vois
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Chemin & NomFichier, xlTemplate

A+


Merci pour ta reponse michdenis,
Le probleme est justement au niveau du chemin: je voudrai qu'il
enregistre au meme chemin que l'original, peu importe ou le fichier se
trouve.
J'espère que ma question est claire,
Salutations

"michdenis" a écrit dans le message de news:
e%

Bonjour Fred64,

En supposant que j'ai compris ta demande,
Pour enregistrer un modèle sous un autre nom mais toujours comme modèle,

Attention, tu n'as droit qu'à un fichier portant le même nom par
répertoire !

'-----------------------------
Sub Enregistrer()

Dim NomFichier As String
Dim Chemin As String
Chemin = "c:Atravail"
NomFichier = ThisWorkbook.Name

If LCase(Right(nomficher, 4)) <> ".xlt" Then
NomFichier = nomficher & ".xlt"
End If

ThisWorkbook.SaveAs Chemin & NomFichier, xlTemplate

End Sub
'-----------------------------


Salutations!


"Fred64" a écrit dans le message de news:

Bonjour,
J'ai un fichier modèle et j'aimerai qu'une macro puisse m'enregistrer ce
fichier à la meme place (sans tenir compte du chemin du dossier) et sous
le
meme nom. J'ai essayé ca mais ca enregistre directement dans Mes
documents.
ActiveWorkbook.SaveAs Filename:=".essai.xlt",
ConflictResolution:=xlOtherSessionChanges

Merci d'avance