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

Msgbox avant de fermer ou d'enregister un fichier

  • Initiateur de la discussion Initiateur de la discussion Boubas1
  • 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 !

Boubas1

XLDnaute Occasionnel
Bonjour,

Je viens vers vous car nous sommes plusieurs à utiliser un fichier excel nommé "base_indus" mais certains un peu novices en excel ont tendance à me faire des tris n'importe comment et me change le fichier d'origine. Donc pour éviter cela, je voudrais éviter d'utiliser des mots de passe et je voudrais simplement les alerter au moment où ils tenteraient d'enregistrer leurs modifs.
Ainsi, j'aimerais svp que vous me donniez le code pour qu'un message d'alerte apparaisse avant que mes collègues ne ferme ou ne tente d'enregistrer le fichier.
Et ce message indiquerait donc "Attention vos modifications sur ce fichier ne sont pas à enregistrer !", avec un "OK" en bas du message qui fermerait, si possible le fichier sans enregistrer les modifs de mes collègues.
Ps: Pouvez vous me dire s'il s'agit d'une macro à effectuer, et le code est-il à intégrer dans un module du fichier où ailleurs ?
Merci.
 
Re : Msgbox avant de fermer ou d'enregister un fichier

Re,

il suffit de rajouter cette ligne à l'existant.
ThisWorkbook.Saved = True

ce qui donne :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Attention vos modifications sur ce fichier ne sont pas à enregistrer !", vbOKOnly
ThisWorkbook.Saved = True
End Sub
aucune modif ne sera enregistrée à la fermeture.

mais si les utilisateurs clique sur le bouton enregistrer, ce code ne sert plus à rien !!

@plus
 
Re : Msgbox avant de fermer ou d'enregister un fichier

Bonsoir à tous
On peut mettre le classeur en lecture seule. On ne pourra enregistrer les modifications que sous un nouveau nom.​
ROGER2327
#3417


16 Floréal An CCXVIII
2010-W18-3T20:40:41Z
 
Re : Msgbox avant de fermer ou d'enregister un fichier

Re,
bonsoir ROGER2327,

Code:
On peut mettre le classeur en lecture seule. On ne pourra enregistrer  les modifications que sous un nouveau nom.

bon sang mais c'est bien sur !!! comment n'y avais je pas pensé !!!
 
Re : Msgbox avant de fermer ou d'enregister un fichier

Re...
Pour mettre le fichier en lecture seule, l'enregistrer et le fermer. Ensuite un clic-droit sur son icône dans le dossier où il est enregistré, puis Propriétés/Général et valider Lecture seule.​
ROGER2327
#3419


16 Floréal An CCXVIII
2010-W18-3T21:21:53Z
 
Re : Msgbox avant de fermer ou d'enregister un fichier

bonsoir,

Si on veut mettre le code de McPoy, c'est 1 macro, donc on fait bien "outils", "macros", "nouvelle macro" et on met le code dans un module ?
S'agirait-il pas plutôt d'un évènement, alors comment procéder alors ? Merci.
 
Re : Msgbox avant de fermer ou d'enregister un fichier

bonjour le forum,

bonsoir,

Si on veut mettre le code de McPoy, c'est 1 macro, donc on fait bien "outils", "macros", "nouvelle macro" et on met le code dans un module ?
S'agirait-il pas plutôt d'un évènement, alors comment procéder alors ? Merci.


ce code est mettre dans ThisworBook

mais je le répète, si un utilisateur fait un enregistrement avant de fermer, ce code ne sert plus à rien !!

mais en cherchant un peu il est possible qu'on puisse empêcher toutes sorte d'action permettant l'enregistrement. a voir ???

@ plus
 
Re : Msgbox avant de fermer ou d'enregister un fichier

Bonjour le fil,

Voici une autre solution, voisine de celle de BrunoM45 dans le fil indiqué par Macpoy.

1) Dans le VBA du fichier concerné, créer un Module (il restera vide), enregistrer et fermer le fichier.

2) Ouvrir le fichier en désactivant les macros.

3) Entrer dans ThisWorkbook cette macro :

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
With ThisWorkbook
If .Saved Then Exit Sub
MsgBox "Vos modifications sur ce fichier ne seront pas enregistrées !"
Cancel = True
  .Saved = True
  If Workbooks.Count = 1 Then Application.Quit Else .Close
End With
End Sub

4) Enregistrer et fermer le fichier.

Maintenant, lorsque le fichier est ouvert en activant les macros, toute modification du fichier est impossible.

Bien sûr on peut toujours le modifier en désactivant les macros... ce qui rend toute cette affaire un peu dérisoire, non ?

A+
 
Msgbox avant d'enregister un fichier

Bonsoir,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Attention vos modifications sur ce fichier ne sont pas à enregistrer !", vbOKOnly
End Sub

Peut-on avoir le même message avec ce code avant d'enregistrer, par exemple avec BeforeSave ou c'est pas possible ?
 
Re : Msgbox avant de fermer ou d'enregister un fichier

Bonjour Boubas1, le forum,

On peut si l'on préfère simplifier la macro du post #11 :

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
If ThisWorkbook.Saved Then Exit Sub 'pas indispensable...
MsgBox "Attention vos modifications sur ce fichier ne sont pas à enregistrer !"
Cancel = True
End Sub

Une macro Workbook_BeforeClose est inutile, sauf si l'on veut éviter la demande d'enregistrement :

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With ThisWorkbook
  If Not .Saved Then
    MsgBox "Attention vos modifications sur ce fichier ne sont pas à enregistrer !"
    .Saved = True
    If Workbooks.Count = 1 Then Application.Quit Else .Close
  End If
End With
End Sub

A+
 
- 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

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