Lecture seule - Désactiver les fonctions Enregistrer (sous)

Fermé
DSI0499 Messages postés 17 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 20 avril 2016 - 3 avril 2015 à 12:40
DSI0499 Messages postés 17 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 20 avril 2016 - 8 avril 2015 à 17:03
Bonjour,

je soumets pour consultation un fichier excel (il est en lecture seule).
Selon leurs besoins, les utilisateurs affichent ou masquent des groupes de colonnes (grâce à des boutons associés à des macros).

À l'ouverture du fichier, toutes les colonnes sont volontairement masquées.
L'affichage est donc modifié à chaque consultation du fichier et de ce fait, Excel 'considère' le document modifié et soumet la boîte de dialogue Enregistrer à l'utilisateur (avec les trois boutons Enregister, Ne pas Enregistrer, Annuler).

Je voudrais :

1. désactiver cette boîte de dialogue lorsqu'après consultation l'utilisateur ferme Excel ou simplement le fichier Excel lui-même, via le bouton "X" de fermeture tout en haut à droite
Comment procéder pour ce point ?

2. activer une boîte de dialogue à la fermeture pour inciter les utilisateurs à communiquer leurs suggestions.
Comment procéder pour faire apparaître une telle boîte de dialogue à la fermeture et générer à partir de celle-ci un mail :
- le message de la boîte de dialogue serait du type : Le fichier est en lecture seule. Les fonctions Enregistrer et Enregistrer sous sont désactivées. Pour communiquer vos suggestions ou remarques, contacter M. X.
- la boîte de dialogue comporterait trois boutons : OK, Envoyer un message, Annuler
- le mail généré comporterait un destinataire prédéfini : xxxxx@xxxx.com
et aurait un objet prédéfini : NOM_DU_FICHIER.XLS - Suggestion(s) ?

Merci beaucoup


A voir également:

8 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
3 avril 2015 à 18:42
Bonjour,

Voici un exemple:

http://www.cjoint.com/data3/3Dds0Zebhdi.htm
0
DSI0499 Messages postés 17 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 20 avril 2016
7 avril 2015 à 11:38
Bonjour,

tout d'abord, merci. Cela fonctionne bien sur le fichier exemple.
Je tente de transposer à mon fichier mais Excel renvoie une erreur lié au UserForm1, Label1.caption :

"Erreur de compilation:

Variable non définie"

Où se définit Label1.Caption ? Je ne le trouve pas ailleurs dans le fichier exemple.

Merci
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
7 avril 2015 à 11:56
Il faut que tu mettes un contrôle Label dans ton UserForm !
Tu peux ouvrir les 2 classeurs et faire un copier coller du Label
0
DSI0499 Messages postés 17 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 20 avril 2016
7 avril 2015 à 12:16
J'avais bien copié le label dans mon fichier avant d'avoir le message d'erreur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DSI0499 Messages postés 17 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 20 avril 2016
7 avril 2015 à 12:36
Je crois savoir d'où vient le problème ; je recommence : lors de la copie du UserForm, les boutons OK et Annuler n'ont pas été copiés.
0
DSI0499 Messages postés 17 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 20 avril 2016
8 avril 2015 à 15:39
Bonjour,
visiblement je n'ai pas complètement réussi à transposer le code à mon fichier car le mail ne s'envoyait pas. Je n'ai plus assez de temps pour poursuivre. Par ailleurs cs_Le Pivert, ton fichier joint http://www.cjoint.com/data3/3Dds0Zebhdi.htm n'est plus téléchargeable. Aurais-tu la gentillesse de le remettre en ligne ?J'optimiserai mon fichier ultérieurement : dans l'immédiat, j'ai trouvé une solution un peu différente de celle que j'imaginais au début :

1. pour éviter qu'EXCEL ne soumette la boîte de dialogue Enregistrer aux utilisateurs :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True ' Fait considérer à Excel qu'il n'y a pas eu de modification. Objet : lorsque l'utilisateur ferme le fichier, faire en sorte qu'EXCEL ferme le glossaire sans proposer de l'enregistrer. En effet, 1/ l'utilisateur ne doit pas modifier le glossaire 2/ Excel considère que les modifications d'affichage (affichage/masque des colonnes de langues) sont des modifications
ThisWorkbook.Close ' Ferme uniquement le classeur consulté ; laisse les autres éventuels classeurs ouverts dans EXCEL
End Sub


2. plutôt qu'un message à partir duquel l'utilisateur génère directement un mail de suggestion, j'ai mis un lien-image 'Suggestion' au sein du fichier Excel : lorsque l'utilisateur clique dessus cela génère un mail.
Pour créer le lien-image : sur l'image, faire clic droit Lien hypertexte puis Adresse de messagerie (dans </ital>Lier à</ital>) puis </ital>mailto:xxxxxxx@xxxx.xxx</ital> et l'objet :
</ital>Suggestion%20de%20modification&body=Bonjour, voici une suggestion :</ital>

Merci cs_Le Pivert pour ton aide dont je me suis inspiré. Si tu veux bien donc, peux-tu éventuellement remettre en ligne ton fichier cjoint pour que je puisse reprendre le sujet à partir de l'original.
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
8 avril 2015 à 15:54
Voilà:

http://www.cjoint.com/data3/3DiqfOJBxG4.htm

Bon courage
0
DSI0499 Messages postés 17 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 20 avril 2016
8 avril 2015 à 17:03
Merci !
0