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

[RÉSOLUE] Désactiver les boutons enregistrement

sebkil28

XLDnaute Nouveau
Bonjour le Forum,
Je déactive l'ensemble des commandes d'enregistrement dans un fichier pour forcer les utilisateurs à utiliser un boutton qui lance une macro de contrôle.
Code:
With Application.CommandBars("Worksheet Menu Bar")
.Controls(1).Controls(4).Enabled = False
.Controls(1).Controls(5).Enabled = False
End With
With Application.CommandBars("Standard")
.Controls(3).Enabled = False
End With
Application.OnKey "^s", ""
Application.OnKey "+{F12}", ""

Seulement voila, nous sommes passé à office 2010 et donc.... ça marche plus !
Savez vous faire le même résultat en office 2010 ? (Bien sûr que oui j'imagine )

D'avance un grand merci pour votre aide
 
Dernière édition:

nyko283

XLDnaute Occasionnel
Re : Désactiver les boutons enregistrement

Bonjour Sebkil, le forum,

Même si je n'est qu'excel 2003, peut etre une piste à creuser :

au lieu d'inactiver tous les boutons,

Déclarer une variable globale de type booléan dans un module standard, par exemple :
VB:
 Public SaveAutorisé as boolean
Puis lors de l'ouverture du classeur mettre la variable à FALSE

VB:
Private Sub Workbook_Open()
SaveAutorisé=False
End Sub

Dans ton bouton d'appel de sauvegarde
VB:
Private Sub CommandButton1_Click()
SaveAutorisé=True ' permettra l'enregistrement du fichier
Thisworkbook.Save
SaveAutorisé=False ' important repasser la variable à False sinon on pourra de nouveau enregistrer depuis n'importe quel bouton.
'ton code ici si tu veut qu'il soit executer apres l'enregistrement
End Sub

Puis dans la macro évènementielle Before_Save
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If not SaveAutorisé Then ' si SaveAutorisé=False
     Cancel = True ' permet d'annuler l'enregistrement
      MsgBox("Veuillez Utiliser le bouton approprier")
     Exit Sub ' sort de la procédure
End If
' ici ton code si tu veut qu'il soit executer avant l'enregistrement
End Sub

Comme çà uniquement le bouton d'appel pourra enregistrer ton fichier, sinon tu peut mettre directement ton code dans BeforeSave et comme çà dès l'instant que l'on enregistrera le fichier par quelque boutons que ce soit ta macro sera executer avant l'enregistrement du fichier.

Espérant avoir répondu à tes attentes.

Bonne soirée
 
Dernière édition:

sebkil28

XLDnaute Nouveau
Re : Désactiver les boutons enregistrement

OK ça fonctionne. Parcontre il faut préciser que l'utilisation d'une fonction Public impose que les macros qui l'utilisent ne soient pas en Private Sub.

J'ai eu quelques soucis avec ça mais tout fonctionne maintenant et peu importe la version Excel.

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