Icone "disquette" inactive

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

M

MisterJo

Guest
Bonjour le forum,

J'ai terminer au boulot un projet de manipulation de fichier excel et word grace aux aides de ce forum, mais jaimerai savoir si il y aurai moyen de rendre inactif l'icone de la 'disquette' présente dans la barre du menu ?

je dois ouvrir un document vierge, le renseigner et le valider par un bouton qui execute une macro. Tous fonctionne pil-poil jusqu'a ce qu'un utilisateur, pendant la saisie sur la feuille vierge clique sur la 'disquette' et donc écrase le fichier vierge 😱hmy:

Je suis donc à la recherche d'un moyen permettant de rendre inactif la 'disquette' mais de quand même permettre les enregistrements dans les macros ?

J'ai ce problème de protection de feuille vierge avec des fichiers excel et avec des formulaires sous word (utilisation du ActiveDocument.SaveAs FileName:= )
 
Bonjour Misterjo, le forum

il faut utiliser une commande du type
Code:
Application.CommandBars('Standard').Controls('Enregistrer').Enabled = False
ne pas oublier de le remettre à true aprés en utilisant une routine de gestion d'erreur pour gérer tous les cas
Code:
Application.CommandBars('Standard').Controls('Enregistrer').Enabled = False
On Error GoTo Fin
'code à exécuter
Fin:
Application.CommandBars('Standard').Controls('Enregistrer').Enabled = True
End Sub

Cordialement, A+
 
Bjr Yeaouh , MisterJo , le Forum,
je me permets cette intervention , avec le besoin de me corriger si cela est nécessaire.
j'ai écrit ceci , lié uniquement au nouveau fichier,qu'en pensez vous ?
ne bloque pas l'icone , mais alerte l'utilisateur avant sauvegarde
merci :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ThisWorkbook.Saved = False Then
MsgBox ' Contactez votre référent avant enregistrement,merci. '
End If
End Sub
 
Bonjour Bobstriker

c'est une solution aussi, il faut par contre l'associer à une variable de test pour débloquer l'enregistrement pour les macros. Dans ton exemple, l'enregistrement se fait quand même.
voila ce que cela devrait donner avec une variable publique
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Test_Enr = True Then Cancel = True
End Sub
un simple Test_Enr = True bloque les enregistrement et Test_Enr = False les autorise.

Cordialement, A+
 
Merci à vous deux pour vos précisons mais il me semble que pour la solution de Yeahou on se trouve dans l'execution d'une macro non ? Quand une personnes ouvre un document vierge sous word, la macro d'enregistrement va être executer seulement à la fin lorqu'il clique sur le bouton qui va bien . Si il clique sur la disquette pendant la rédaction la macro n'est pas en 'run' et pas conséquent je ne vois pas comment ce code peut être opérationnel :huh:
A moins que quelque chose m'échappe ??

Pour la solution de Bobstriker, Yeahou signale qu'il faut déclarer une variable public mais je ne connais pas la procédure.

Pouvez vous éclairer ma lanterne ?

Merci d'avance.

MisterJo
 
Re

la macro Workbook_BeforeSave ne concerne que le classeur ou le document actif et il faut donc l'incorporer au document créé.
la désactivation du bouton, elle, se produira dés le code lancé et persistera pour tous les documents tant que l'instruction de réactivation n'aura pas été lancée (même en cas de fermeture et réouverture de l'application, à manipuler avec précaution, donc)

A+
 
Re

la macro Workbook_BeforeSave ne concerne que le classeur ou le document actif et il faut donc l'incorporer au document créé.
la désactivation du bouton, elle, se produira dés le code lancé et persistera pour tous les documents tant que l'instruction de réactivation n'aura pas été lancée (même en cas de fermeture et réouverture de l'application, à manipuler avec précaution, donc)

A+
 
Re

il faut déclarer une variable publique dans un module avec une déclaration de type
Public Test_Enr As Boolean
Cette variable sera alors accessible de toutes les procédures du classeur en cours à quelque moment que ce soit.

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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour