erreur GetSaveAsFilename

  • Initiateur de la discussion Initiateur de la discussion mc_guiloo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mc_guiloo

XLDnaute Nouveau
Bonjour au forum,

J'ai écrit une macro pour forcer l'utilisateur en enregistrer le classeur avec un nom précis, et ce seulement si le fichier de départ est "Medele Tableau.xls".
Cependant, après l"enregistrement, Excel me retourne un message d'erreur me proposant de récupérer mes données non enregistrées, ainsi que d'envoyer un rapport d'erreur à microsoft. toutefois, l'enregistrement à été réalisé avec succès. Une idée ?

Mon code :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim fName
Dim Chemin As String

If ThisWorkbook.Name <> "Modele Tableau.xls" Then Exit Sub

Chemin = ThisWorkbook.Path & "\Tableau " & Range("Feuil2!H3").Text & ".xls"

fName = Application.GetSaveAsFilename(InitialFileName:=Chemin)

If fName <> False Then ThisWorkbook.SaveAs FileName:=fName

End Sub

Merci d'avance

Guilhem
 
Dernière édition:
Re : erreur GetSaveAsFilename

C'est bon, j'ai enfin trouvé la solution.
L'erreur était due au fait que l'on ne désactivait pas la sauvegarde du au clic sur le bouton enregistrer. Du coup, il voulait enregistrer deux fois mon classeur.
La solution consiste à placer un
application.enablevents = False

Voici donc mon code si ca peut servir un jour à quelqu'un

'**************Suggère un nom d'enregistrement*************
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim fName
Dim Chemin As String

'on ne propose un enregistrement particulier que pour le modèle
If ThisWorkbook.Name <> "Modele Tableau.xls" Then Exit Sub

Chemin = ThisWorkbook.Path & "\Tableau " & Range("Feuil2!H3").Text & ".xls"

'on annule l'enregistrement en cours
Cancel = True

Application.EnableEvents = False 'pour ne pas tenir compte de l'annulation
fName = Application.GetSaveAsFilename(InitialFileName:=Chemin)

'si l'utilisateur clic sur annuler, on annule la sauvegarde
If fName = False Then
Cancel = True
Exit Sub
End If

ThisWorkbook.SaveAs FileName:=fName

Application.EnableEvents = True
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
674
Réponses
3
Affichages
687
Retour