Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/08/2011, 11h54   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2011
Messages : 80
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 80
Points : 11
Points : 11
Par défaut Empecher l'enregistrement du classeur

Bonjour,

Ma demande est simple mais surement compliquée à faire (enfin pour moi tout du moins).
Je voudrais pouvoir bloquer toute forme d'enregistrement sauf par un bouton.
Ainsi si la personne clique sur la croix pour fermer le classeur : rien ne se passe. Si la personne essaye de faire Fichier\Enregistrer : rien ne se passe.
Si la personne essaye de faire Ctrl+S : rien ne se passe.
Par contre si elle appuie sur un bouton la ca enregistre.

Si quelqu'un a une idée ca m'aiderait vraiment grandement.
Merci d'avance

Tioch
tioch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 12h09   #2
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Par défaut empêcher fermeture et enregistrement

Bonjour Tioch, Bonjour le Forum,

Un conseil : avant de poster une question, consulte la Faq, les tutoriels et les posts éventuels sur ce même Forum relevant de ta question, en utilisant les fonctions de recherche.

Dans la Faq,

empêcher la fermeture du classeur

Ce qui est vrai pour l'évènement peut l'être, à mon avis, pour l'évènement .
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 12h09   #3
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Grâce à la fonction événementielle de ThisWorkboow "BeforeSave" :

Code ThisWorkbook :
1
2
3
4
5
6
7
8
Public bAutoriseSauvegarde As Boolean
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   If Not bAutoriseSauvegarde Then
    MsgBox "Sauvegarde interdite"
    Cancel = True
    End If
    bAutoriseSauvegarde = False ' interdit prochaine sauvegarde
End Sub

et pour le bouton

Code :
1
2
3
4
Private Sub CommandButton1_Click()
  ThisWorkbook.bAutoriseSauvegarde = True
   ThisWorkbook.Save
End Sub
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 12h32   #4
Candidat au titre de Membre du Club
 
Inscription : juin 2011
Messages : 80
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 80
Points : 11
Points : 11
Tout d'abord merci pour vos réponses.

Par rapport à la solution de bbil : C'est quasiment parfait, sauf qd je clique sur la croix por fermer tout les classeurs (la plus en haut à droite des 2 croix) la sauvegarde est permise ! (je clique dessus, ca me sauvegarde et après ca me met le message "Sauvegarde Interdite")
Y-a-t-il donc un moyen pour empecher cela également?

Par rapport à ta réponse MarcelG : j'ai effectivement consulté la FAQ avant de poster ce message, j'ai meme regarder longuement exactement cette aide que tu m'a mis en lien. Mais je ne comprends comment tu remplace close par save dans la première partie du code. empeche bien la fermeture, mais alors comment empecher la sauvegarde ?

Merci beaucoup pour vos réponses

Tioch
tioch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 12h40   #5
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par tioch Voir le message
...
Par rapport à la solution de bbil : C'est quasiment parfait, sauf qd je clique sur la croix por fermer tout les classeurs (la plus en haut à droite des 2 croix) la sauvegarde est permise ! (je clique dessus, ca me sauvegarde et après ca me met le message "Sauvegarde Interdite")
Y-a-t-il donc un moyen pour empecher cela également?...
tu est vraiment sur que la sauvegarde est effectuée ? à ce moment la .. (j'ai pas le temps de re-tester mais je crois pas..)
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 12h42   #6
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Par défaut évènements

Salut tioch,

Je voulais signifier l'homogénéité des 2 évènements.

Dans l'objet ThisWorkbook de ton éditeur VBE, tu peux ajouter l'évènement à celui .
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 14h05   #7
Candidat au titre de Membre du Club
 
Inscription : juin 2011
Messages : 80
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 80
Points : 11
Points : 11
Bbil, alors effectivement je me suis trompé mais cela ne fonctionne pas exactement comme je voudrais.
Lorsque je clique sur la croix la plus en haut à droite, j'ai la boite de dialogue de la demande de sauvegarde s'ouvre, je clique sur "oui", (là si c'est ma première sauvegarde la boite enregistrer s'ouvre) et après j'ai le message "Sauvegarde Interdite", je clique sur OK et là le classeur se ferme.
Donc il faudrait juste que le classeur ne se ferme pas et c'est bon !

MarcelG, ca doit surement etre une autre bonne solution mais je ne vois toujours pas comment faire.
Faut-il remplacer le BeforeClose par BeforeSave? (Ca ne fera rien ?)
Que faut-il ajouter à BeforeClose et où?

Si tu peux me demander quelques éléments qui me permettront d'avancer je t'en remercie d'avance.
tioch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 14h29   #8
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Par défaut évènements

Salut tioch,

Dans le code affecté à ton objet, tu peux affecter autant d'évènements que tu le souhaites et qui sont prévus à cet effet. Leur liste en est donnée par liste déroulante au haut de ton éditeur VBE.

Pour répondre à ta question, je te conseille donc de placer l'instruction dans les 2 procédures évènementielles.

Tu auras une vue globale à ce sujet en consultant le tutoriel de Silkyroad.

Evènements ThisWorkbook

Cela dit, j'ai développé plusieurs applications où seule la fermeture par un bouton donné est possible.

2 discussions où il en est fait état, avec, entre autres, des compléments de Patrick Toulon :

probleme-croix-fermeture-fichier

et

rendre-inactive-croix-classeur
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 14h48   #9
Candidat au titre de Membre du Club
 
Inscription : juin 2011
Messages : 80
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 80
Points : 11
Points : 11
Merci à vous deux, j'ai quasiement réussi a faire ce que je voulais
tioch est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h55.


 
 
 
 
Partenaires

Hébergement Web