Interdire d'enregistrer sous un nom de fichier
baloo24
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à Tous ! J'ai un fichier matrice que j'appelle X sur lequel je souhaiterai que les utilisateurs ne puisse pas enregistrer sous le nom X. Comment faire ? D'avance merci ! Bonnes vacances à ceux qui y sont et bon courage aux autres !
A voir également:
- Interdire d'enregistrer sous un nom de fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Audacity enregistrer son pc - Guide
- Fichier rar - Guide
4 réponses
Dans le module ThisWorkBook :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim rèpDialogue As Variant 'Réponse de la boite de dialogue Excel Dim nomFichier As String 'Nom du fichier original Dim nomProposé As String 'Nom de fichier proposé ou saisi Dim txt As String 'Titre de la boite de message Dim msg As String 'Message pour boite de message Dim rép As Integer 'Réponse à une boite de message Application.EnableEvents = False 'Proposer l'enregistrement (nomfichier-1.xlsm) nomFichier = ThisWorkbook.Name nomProposé = Mid(nomFichier, 1, InStrRev(nomFichier, ".") - 1) & _ "-1" & _ Mid(nomFichier, InStrRev(nomFichier, ".")) txt = "Enregistrer le fichier avec autre nom" Do rèpDialogue = Application.GetSaveAsFilename(InitialFileName:=nomProposé, _ FileFilter:="Classeur Excel (*.xlsm) , *.xlsm", Title:=txt) If rèpDialogue = False Then Application.EnableEvents = True Cancel = True Exit Sub End If nomProposé = StrReverse(rèpDialogue) nomProposé = StrReverse(Mid(nomProposé, 1, InStr(1, nomProposé & "\", "\") - 1)) If nomProposé = nomFichier Then msg = "Vous ne pouvez pas enregistret le fichier avec " & vbCr & _ "le même nom, que l'original (" & nomFichier & ")" & vbCr & vbCr & _ "Saisir un autre nom." rép = MsgBox(msg, vbExclamation + vbOKCancel, txt) End If Loop While nomProposé = nomFichier On Error GoTo ErrorHandler ActiveWorkbook.SaveAs Filename:=nomProposé On Error GoTo 0 Application.EnableEvents = True Cancel = True Exit Sub ErrorHandler: 'Routine de gestion d'erreur. '------------ 'Évalue le numéro d'erreur. Select Case Err.Number Case 1004 'Le fichier existe déjà ou l'enregistrement à été annulé If Err.Description = "La méthode 'SaveAs' de l'objet '_Workbook' a échoué" Then Resume Next Else 'Le fichier est déjà ouvert MsgBox "L'enregistrement à échoué :" & vbCr & vbCr & Err.Description, vbInformation, txt Resume Next End If Case Else MsgBox Err.Description, vbCritical, txt Resume Next End Select End Sub
Bonjour,
S'il faut garder toutes les "versions" enregistrées, il suffit d'ajouter la date entre le nom de fichier et l'extention.
S'il faut garder une version par personne qui enregistre, il faut regarder s'il y aurait pas une variable système avec l'identifiant réseau et la rajouter au nom de fichier... exemple : X & Environ("UserName") &".xls"
S'il faut garder toutes les "versions" enregistrées, il suffit d'ajouter la date entre le nom de fichier et l'extention.
S'il faut garder une version par personne qui enregistre, il faut regarder s'il y aurait pas une variable système avec l'identifiant réseau et la rajouter au nom de fichier... exemple : X & Environ("UserName") &".xls"