J'ai créé un modèle et j'aimerais qu'une fois qu'un fichier est créé à
partir de ce modèle, il soit possible de l'enregistrer une seule fois. Si des
modifications doivent être apportées au fichier par la suite, j'aimerais que
l'utilisateur soit forcé à l'enregistrer sous un autre nom.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Dans le ThisWorkbook de ton classeur, copie ce type de procédure : que tu peux améliorer selon tes goûts.
'------------------------------------- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If SaveAsUI = True Then Else x = ThisWorkbook.FullName Do z = Application.InputBox(PROMPT:="Inscrivez le NOUVEAU nom du classeur.", _ Title:="Enregistrer sous", Default:="SonNom.xls", Type:=2) If LCase(Right(z, 4)) <> ".xls" Then z = z & ".xls" If UCase(z) = UCase(ThisWorkbook.Name) Then If MsgBox("Ce nom existe déjà. Vous devez choisir un autre nom." & _ "Désirez-vous continuer?", vbCritical + vbYesNo, "Nouveau nom") = vbNo Then Cancel = True Exit Sub End If Else On Error Resume Next Application.EnableEvents = False ThisWorkbook.SaveAs ThisWorkbook.Path & "" & z Application.EnableEvents = True If Err <> 0 Then Err.Clear MsgBox "Vous avex saisi un caractère interdit dans " & _ "le nom du fichier : |/*?:><" Cancel = False Else Cancel = True End If End If Loop Until Cancel = True End If End Sub '-------------------------------------
"Claire" a écrit dans le message de news:
Bonjour,
J'ai créé un modèle et j'aimerais qu'une fois qu'un fichier est créé à partir de ce modèle, il soit possible de l'enregistrer une seule fois. Si des modifications doivent être apportées au fichier par la suite, j'aimerais que l'utilisateur soit forcé à l'enregistrer sous un autre nom.
Pouvez-vous m'aider?
Merci!
Claire
Dans le ThisWorkbook de ton classeur, copie ce type de procédure :
que tu peux améliorer selon tes goûts.
'-------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = True Then
Else
x = ThisWorkbook.FullName
Do
z = Application.InputBox(PROMPT:="Inscrivez le NOUVEAU nom du classeur.", _
Title:="Enregistrer sous", Default:="SonNom.xls", Type:=2)
If LCase(Right(z, 4)) <> ".xls" Then z = z & ".xls"
If UCase(z) = UCase(ThisWorkbook.Name) Then
If MsgBox("Ce nom existe déjà. Vous devez choisir un autre nom." & _
"Désirez-vous continuer?", vbCritical + vbYesNo, "Nouveau nom") = vbNo Then
Cancel = True
Exit Sub
End If
Else
On Error Resume Next
Application.EnableEvents = False
ThisWorkbook.SaveAs ThisWorkbook.Path & "" & z
Application.EnableEvents = True
If Err <> 0 Then
Err.Clear
MsgBox "Vous avex saisi un caractère interdit dans " & _
"le nom du fichier : |/*?:><"
Cancel = False
Else
Cancel = True
End If
End If
Loop Until Cancel = True
End If
End Sub
'-------------------------------------
"Claire" <Claire@discussions.microsoft.com> a écrit dans le message de news:
3E195F2A-2273-4715-BEB6-B1C9AFC3601A@microsoft.com...
Bonjour,
J'ai créé un modèle et j'aimerais qu'une fois qu'un fichier est créé à
partir de ce modèle, il soit possible de l'enregistrer une seule fois. Si des
modifications doivent être apportées au fichier par la suite, j'aimerais que
l'utilisateur soit forcé à l'enregistrer sous un autre nom.
Dans le ThisWorkbook de ton classeur, copie ce type de procédure : que tu peux améliorer selon tes goûts.
'------------------------------------- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If SaveAsUI = True Then Else x = ThisWorkbook.FullName Do z = Application.InputBox(PROMPT:="Inscrivez le NOUVEAU nom du classeur.", _ Title:="Enregistrer sous", Default:="SonNom.xls", Type:=2) If LCase(Right(z, 4)) <> ".xls" Then z = z & ".xls" If UCase(z) = UCase(ThisWorkbook.Name) Then If MsgBox("Ce nom existe déjà. Vous devez choisir un autre nom." & _ "Désirez-vous continuer?", vbCritical + vbYesNo, "Nouveau nom") = vbNo Then Cancel = True Exit Sub End If Else On Error Resume Next Application.EnableEvents = False ThisWorkbook.SaveAs ThisWorkbook.Path & "" & z Application.EnableEvents = True If Err <> 0 Then Err.Clear MsgBox "Vous avex saisi un caractère interdit dans " & _ "le nom du fichier : |/*?:><" Cancel = False Else Cancel = True End If End If Loop Until Cancel = True End If End Sub '-------------------------------------
"Claire" a écrit dans le message de news:
Bonjour,
J'ai créé un modèle et j'aimerais qu'une fois qu'un fichier est créé à partir de ce modèle, il soit possible de l'enregistrer une seule fois. Si des modifications doivent être apportées au fichier par la suite, j'aimerais que l'utilisateur soit forcé à l'enregistrer sous un autre nom.
Pouvez-vous m'aider?
Merci!
Claire
MichDenis
Utilise plutôt cette version, une légère correction a été apportée : à copier dans le thisWorkbook de ton classeur :
'--------------------------------------- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim Z As String If SaveAsUI = True Then Else Do Z = Application.InputBox(PROMPT:="Inscrivez le NOUVEAU nom du classeur.", _ Title:="Enregistrer sous", Default:="SonNom.xls", Type:=2) If Format(Z) = False Then Cancel = True: Exit Sub If LCase(Right(Z, 4)) <> ".xls" Then Z = Z & ".xls" If UCase(Z) = UCase(ThisWorkbook.Name) Then If MsgBox("Ce nom existe déjà. Vous devez choisir un autre nom." & _ "Désirez-vous continuer?", vbCritical + vbYesNo, "Nouveau nom") = vbNo Then Cancel = True Exit Sub End If Else On Error Resume Next Application.EnableEvents = False ThisWorkbook.SaveAs ThisWorkbook.Path & "" & Z Application.EnableEvents = True If Err <> 0 Then Err.Clear MsgBox "Vous avex saisi un caractère interdit dans " & _ "le nom du fichier : |/*?:><" Cancel = False Else Cancel = True End If
End If Loop Until Cancel = True End If End Sub '---------------------------------------
"Claire" a écrit dans le message de news:
Bonjour,
J'ai créé un modèle et j'aimerais qu'une fois qu'un fichier est créé à partir de ce modèle, il soit possible de l'enregistrer une seule fois. Si des modifications doivent être apportées au fichier par la suite, j'aimerais que l'utilisateur soit forcé à l'enregistrer sous un autre nom.
Pouvez-vous m'aider?
Merci!
Claire
Utilise plutôt cette version, une légère correction a été apportée
: à copier dans le thisWorkbook de ton classeur :
'---------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Z As String
If SaveAsUI = True Then
Else
Do
Z = Application.InputBox(PROMPT:="Inscrivez le NOUVEAU nom du classeur.", _
Title:="Enregistrer sous", Default:="SonNom.xls", Type:=2)
If Format(Z) = False Then Cancel = True: Exit Sub
If LCase(Right(Z, 4)) <> ".xls" Then Z = Z & ".xls"
If UCase(Z) = UCase(ThisWorkbook.Name) Then
If MsgBox("Ce nom existe déjà. Vous devez choisir un autre nom." & _
"Désirez-vous continuer?", vbCritical + vbYesNo, "Nouveau nom") = vbNo Then
Cancel = True
Exit Sub
End If
Else
On Error Resume Next
Application.EnableEvents = False
ThisWorkbook.SaveAs ThisWorkbook.Path & "" & Z
Application.EnableEvents = True
If Err <> 0 Then
Err.Clear
MsgBox "Vous avex saisi un caractère interdit dans " & _
"le nom du fichier : |/*?:><"
Cancel = False
Else
Cancel = True
End If
End If
Loop Until Cancel = True
End If
End Sub
'---------------------------------------
"Claire" <Claire@discussions.microsoft.com> a écrit dans le message de news:
3E195F2A-2273-4715-BEB6-B1C9AFC3601A@microsoft.com...
Bonjour,
J'ai créé un modèle et j'aimerais qu'une fois qu'un fichier est créé à
partir de ce modèle, il soit possible de l'enregistrer une seule fois. Si des
modifications doivent être apportées au fichier par la suite, j'aimerais que
l'utilisateur soit forcé à l'enregistrer sous un autre nom.
Utilise plutôt cette version, une légère correction a été apportée : à copier dans le thisWorkbook de ton classeur :
'--------------------------------------- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim Z As String If SaveAsUI = True Then Else Do Z = Application.InputBox(PROMPT:="Inscrivez le NOUVEAU nom du classeur.", _ Title:="Enregistrer sous", Default:="SonNom.xls", Type:=2) If Format(Z) = False Then Cancel = True: Exit Sub If LCase(Right(Z, 4)) <> ".xls" Then Z = Z & ".xls" If UCase(Z) = UCase(ThisWorkbook.Name) Then If MsgBox("Ce nom existe déjà. Vous devez choisir un autre nom." & _ "Désirez-vous continuer?", vbCritical + vbYesNo, "Nouveau nom") = vbNo Then Cancel = True Exit Sub End If Else On Error Resume Next Application.EnableEvents = False ThisWorkbook.SaveAs ThisWorkbook.Path & "" & Z Application.EnableEvents = True If Err <> 0 Then Err.Clear MsgBox "Vous avex saisi un caractère interdit dans " & _ "le nom du fichier : |/*?:><" Cancel = False Else Cancel = True End If
End If Loop Until Cancel = True End If End Sub '---------------------------------------
"Claire" a écrit dans le message de news:
Bonjour,
J'ai créé un modèle et j'aimerais qu'une fois qu'un fichier est créé à partir de ce modèle, il soit possible de l'enregistrer une seule fois. Si des modifications doivent être apportées au fichier par la suite, j'aimerais que l'utilisateur soit forcé à l'enregistrer sous un autre nom.
Pouvez-vous m'aider?
Merci!
Claire
Claire
Bonjour MichDenis,
Un gros merci, c'est génial. Tout à fait ce que j'avais besoin.
Claire
Utilise plutôt cette version, une légère correction a été apportée : à copier dans le thisWorkbook de ton classeur :
'--------------------------------------- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim Z As String If SaveAsUI = True Then Else Do Z = Application.InputBox(PROMPT:="Inscrivez le NOUVEAU nom du classeur.", _ Title:="Enregistrer sous", Default:="SonNom.xls", Type:=2) If Format(Z) = False Then Cancel = True: Exit Sub If LCase(Right(Z, 4)) <> ".xls" Then Z = Z & ".xls" If UCase(Z) = UCase(ThisWorkbook.Name) Then If MsgBox("Ce nom existe déjà. Vous devez choisir un autre nom." & _ "Désirez-vous continuer?", vbCritical + vbYesNo, "Nouveau nom") = vbNo Then Cancel = True Exit Sub End If Else On Error Resume Next Application.EnableEvents = False ThisWorkbook.SaveAs ThisWorkbook.Path & "" & Z Application.EnableEvents = True If Err <> 0 Then Err.Clear MsgBox "Vous avex saisi un caractère interdit dans " & _ "le nom du fichier : |/*?:><" Cancel = False Else Cancel = True End If
End If Loop Until Cancel = True End If End Sub '---------------------------------------
"Claire" a écrit dans le message de news:
Bonjour,
J'ai créé un modèle et j'aimerais qu'une fois qu'un fichier est créé à partir de ce modèle, il soit possible de l'enregistrer une seule fois. Si des modifications doivent être apportées au fichier par la suite, j'aimerais que l'utilisateur soit forcé à l'enregistrer sous un autre nom.
Pouvez-vous m'aider?
Merci!
Claire
Bonjour MichDenis,
Un gros merci, c'est génial. Tout à fait ce que j'avais besoin.
Claire
Utilise plutôt cette version, une légère correction a été apportée
: à copier dans le thisWorkbook de ton classeur :
'---------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Z As String
If SaveAsUI = True Then
Else
Do
Z = Application.InputBox(PROMPT:="Inscrivez le NOUVEAU nom du classeur.", _
Title:="Enregistrer sous", Default:="SonNom.xls", Type:=2)
If Format(Z) = False Then Cancel = True: Exit Sub
If LCase(Right(Z, 4)) <> ".xls" Then Z = Z & ".xls"
If UCase(Z) = UCase(ThisWorkbook.Name) Then
If MsgBox("Ce nom existe déjà. Vous devez choisir un autre nom." & _
"Désirez-vous continuer?", vbCritical + vbYesNo, "Nouveau nom") = vbNo Then
Cancel = True
Exit Sub
End If
Else
On Error Resume Next
Application.EnableEvents = False
ThisWorkbook.SaveAs ThisWorkbook.Path & "" & Z
Application.EnableEvents = True
If Err <> 0 Then
Err.Clear
MsgBox "Vous avex saisi un caractère interdit dans " & _
"le nom du fichier : |/*?:><"
Cancel = False
Else
Cancel = True
End If
End If
Loop Until Cancel = True
End If
End Sub
'---------------------------------------
"Claire" <Claire@discussions.microsoft.com> a écrit dans le message de news:
3E195F2A-2273-4715-BEB6-B1C9AFC3601A@microsoft.com...
Bonjour,
J'ai créé un modèle et j'aimerais qu'une fois qu'un fichier est créé à
partir de ce modèle, il soit possible de l'enregistrer une seule fois. Si des
modifications doivent être apportées au fichier par la suite, j'aimerais que
l'utilisateur soit forcé à l'enregistrer sous un autre nom.
Un gros merci, c'est génial. Tout à fait ce que j'avais besoin.
Claire
Utilise plutôt cette version, une légère correction a été apportée : à copier dans le thisWorkbook de ton classeur :
'--------------------------------------- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim Z As String If SaveAsUI = True Then Else Do Z = Application.InputBox(PROMPT:="Inscrivez le NOUVEAU nom du classeur.", _ Title:="Enregistrer sous", Default:="SonNom.xls", Type:=2) If Format(Z) = False Then Cancel = True: Exit Sub If LCase(Right(Z, 4)) <> ".xls" Then Z = Z & ".xls" If UCase(Z) = UCase(ThisWorkbook.Name) Then If MsgBox("Ce nom existe déjà. Vous devez choisir un autre nom." & _ "Désirez-vous continuer?", vbCritical + vbYesNo, "Nouveau nom") = vbNo Then Cancel = True Exit Sub End If Else On Error Resume Next Application.EnableEvents = False ThisWorkbook.SaveAs ThisWorkbook.Path & "" & Z Application.EnableEvents = True If Err <> 0 Then Err.Clear MsgBox "Vous avex saisi un caractère interdit dans " & _ "le nom du fichier : |/*?:><" Cancel = False Else Cancel = True End If
End If Loop Until Cancel = True End If End Sub '---------------------------------------
"Claire" a écrit dans le message de news:
Bonjour,
J'ai créé un modèle et j'aimerais qu'une fois qu'un fichier est créé à partir de ce modèle, il soit possible de l'enregistrer une seule fois. Si des modifications doivent être apportées au fichier par la suite, j'aimerais que l'utilisateur soit forcé à l'enregistrer sous un autre nom.