désactiver enregistrement...

  • Initiateur de la discussion nicolas
  • Date de début
N

nicolas

Guest
Bonjour le forum,

je cherche à empecher l'enregistrement du fichier excel sur lequel je travaille depuis le menu "fichier" et l'icone "disquette".
Pour l'icone j'ai fait la manip suivante dans le thisworkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Standard").Visible = True

End Sub

Private Sub Workbook_Open()
Application.CommandBars("Standard").Visible = False


End Sub



Il me manque maintenant la petite macro pour désactiver les options "enregistrer" et "enregistrer sous"...
J'ai essayé la chose suivante :

sub auto_open()

with CommandeBars("Worksheet Menu Bar")
.Controls(1).Controls(4).enabled = false
.Controls(1).Controls(5).enabled = false
end with

end sub

mais ca marche pas...
Quelqu'un saurait-il m'aider???
merci davance
ps : excel 2000

a plus
koko
 
@

@+Thierry

Guest
Bonjour Nicolas

Si vraiment tu ne veux pas sauver ton fichier, ni faire un SaveAs alors inutile de faire une usine à gaz de la sorte qui au pire risque de mettre la pagaille sur les configs de tes Users...

Ceci suffit amplement dans le Private Module ThisWorkBook :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
MsgBox "Non Non on ne Sauve Pas, LOL"
End Sub

Bon App
@+Thierry
 
N

nicolas

Guest
'lu Thierry,

ben en fait si, le fichier doit être sauvé et la sauvegarde du fichier doit se faire depuis un bouton auquel est affectée une macro d'enregistrement et de transfert de données vers un autre classeur.
C'est pour ca que je souhaite désactiver les fonctions d'enregistrement "classiques" qui ne permettent pas le transfert des données.
merci
 
@

@+Thierry

Guest
'lu Nicolas !, 'lu le Forum ('ol <===== LOL Abrégé !!!)

Non, je comprends tes besoins et je persiste, sans faire d'usine à gaz en jouant (aléatoirement) avec les menus et autres commandbars, il suffit d'une ch'ti Boolean que l'on va nommer "SaveAuthorized" et elle fera l'affaire...

Dans un Module Standard : (en haut de celui-ci, en dehors de toute Sub)

Public SaveAuthorized As Boolean

Dans le Private Module de Feuille qui contient le commandButton d'enregistrement)

Private Sub CommandButton1_Click()
SaveAuthorized = True
ThisWorkbook.Save '(si on doit sauver le classeur à ce stade)
TaMacroTransfer '(soit tu appelles la macro soit tu place ta procédure ici)
SaveAuthorized = False 'on remet la boolean en verrou
End Sub

Dans le Private Module ThisWorkBook
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAuthorized = True Then Exit Sub 'on sort si le "verrou" n'est pas locked sinon...
Cancel = True
MsgBox "Non Non on ne Sauve Pas, LOL"
End Sub


Voilà ce n'est pas plus compliqué que çà... Et aucun risque de laisser Excel "en désordre" une fois ton programme exécuté...

Bon Aprèm
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 849
Membres
103 974
dernier inscrit
chmikha