Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Ouverture menu enregistrer sous

havopti

XLDnaute Nouveau
Salut a tous

j'ai une macro qui empêche de sauvegarder un fichier si celui correspond au mon chemin cible, le but était d’éviter d'utiliser la lecture seule.

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 If ThisWorkbook.FullName = "chemin cible" Then Cancel = True
End Sub

hors avec ceci j’obtiens parfaitement ce que je veux c'est à dire qu'il est impossible de sauvegarder des modifications sur se fichier, je voudrais juste ajouter lorsque que l'on quitte le fichier une ouverture du menu enregistrer sous afin que des utilisateurs maladroits qui ont fait des modifications sur le fichier sans faire attention puisse tout de meme sauver leurs travail en faisant une copie.

le probleme c'est que le code du type

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Dialogs(xlDialogSaveAs).Show
End Sub
qui marcherai sans autres conditions ne fonctionne pas si l'on place mon code plus haut
 
Dernière édition:
G

Guest

Guest
Re : Ouverture menu enregistrer sous

Bonjour,

Dans le module ThisWorkbook:
Code:
Option Explicit
Private BeforeClosing As Boolean
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
     If ThisWorkbook.FullName = "chemin cible" Then Cancel = Not BeforeClosing
    BeforeClosing = False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    BeforeClosing = True
    Application.Dialogs(xlDialogSaveAs).Show
End Sub

dis nous si cela résout ton problème.

A+
 
Dernière modification par un modérateur:

havopti

XLDnaute Nouveau
Re : Ouverture menu enregistrer sous

merci beaucoup c'est parfait

par contre comment rajouter "mes documents" comme emplacement de sauvegarde par défaut pour éviter d'écraser le fichier cible?
 
G

Guest

Guest
Re : Ouverture menu enregistrer sous

Re,

Cela irait-il :
Code:
ChDir "C:\Users\xxxx\Documents"

Voir l'aide excel sur ChDir, CurDir

A+
 
Dernière modification par un modérateur:

havopti

XLDnaute Nouveau
Re : Ouverture menu enregistrer sous

c'est la solution que j'ai trouvé en fouinant sur le net mais je n'arrive quand même pas a modifier mon emplacement par defaut même en prenant un autre chemin que "mes documents"
 

havopti

XLDnaute Nouveau
Re : Ouverture menu enregistrer sous

oops mauvaise converse

d'ailleurs je trouve pas la fonction supprimer le message

j'en suis la

Code:
Option Explicit
Private BeforeClosing As Boolean
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Not BeforeClosing Then
 If ThisWorkbook.FullName = "chemin cible.xlsm" Then Cancel = True
    End If
    BeforeClosing = False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    BeforeClosing = True
    ChDrive ("C:\")
ChDir ("\chemin d'enregistrement")
    Application.Dialogs(xlDialogSaveAs).Show
End Sub
 
Dernière édition:

havopti

XLDnaute Nouveau
Re : Ouverture menu enregistrer sous

Il faut mettre il faut bien sur que le répertoire existe.

Salut j'ai aussi testé cette manière mais comme le fichier cible est a la base sur un disque commun P il faut je crois passer par le Ch Drive pour préciser que je veux directement enregistrer sur le disque dur du PC



De quelle fonctionne parles-tu pour supprimer le message et de quel message s'agit-il ?
je parlais juste de supprimer un poste sur le forum ^^ pas de macro la
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…