Effacer de cellules dans des feuilles masquée

Résolu/Fermé
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 - 7 nov. 2009 à 20:54
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 9 nov. 2009 à 20:17
Bonsoir,

J’ai encore besoin d’aide…
J’ai un classeur Excel comportant 8 feuilles, dont deux seulement sont visibles simultanément. Une feuille d’« Aide » et une feuille « Menu ». Les feuilles masquées ont un certains nombres de cellules non protégées. Des cellules différentes d’une feuille à une autre. Ces feuilles sont appelées à leur tour lors de l’utilisation du classeur de sorte qu’il n’y ait toujours que deux feuilles visibles en même temps : la feuille appelée et la feuille « Aide », la feuille Menue étant masquée le temps de l’affichage d’une autre feuille.
Afin d’ouvrir toujours ce classeur dans le même état, je souhaite rétablir dans leur état initiale toutes les cellules non protégées de toutes les feuilles masquées lors de la fermeture du classeur à l’aide d’un bouton « Quitter », qui lance une macro VBA. Et c’est là que je coince…
J’arrive à le faire mais en affichant chaque feuille les unes après les autres ce qui se traduit à l’écran par un défilement de feuilles pas du tout esthétique et agressif visuellement.
Quelqu’un aurait-il une idée beaucoup plus « Pro » ?

D’avance merci.
Cordialement.
Mistral

4 réponses

Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
7 nov. 2009 à 22:31
Salut,

Ce code par exemple ferme le fichier sans enregistrer, mais si un jour tu dois apporter une modif sur le fichier il ne faudra pas oublier d'enregistrer ton fichier avant de le fermer.
Il est possible d'insérer une inputbox avec deux boutons OUI pour confirmer la fermeture sans enregistrer et NON pour arrêter la prodédure, ou une msgbox qui avertie que le fichier est fermé sans sauvegarde

Sub test()
ActiveWorkbook.Close False
End Sub
0
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
9 nov. 2009 à 10:26
Bonjour,

Merci pour votre réponse mais ce n'est pas exactement ce que je demandais car je me suis probablement mal exprimé.
La fermeture et la sauvegarde du classeur dans son l'état initial fonction parfaitement.
Ce qui me pose problème c'est que pour effacer les différentes feuilles masquées, je les affiche ce qui à pour conséquence de voir les feuilles apparaître les une après les autres. Ce qui n'est visuellement pas acceptable.
De plus sur l'une des feuilles j'ai une procedure "Private Sub Worksheet_Change(ByVal sel As Range)" qui test la saisie d'une valeur dans les cellules d'une colonne, ce qui allonge le temps d'éffacement.
Ce que je souhaiterais c'est que je puisse faire la même chose de façon plus "Pro". Ne pas afficher les feuilles par exemple avant de les effacer et faire en sorte que cela soit rapide.
Y a t il une solution???.
Cordialement
Mistral
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
7 nov. 2009 à 23:36
Bonsoir,

Application.ScreenUpdating = False
Rétablir avec =true

eric
0
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
9 nov. 2009 à 10:43
Bonjour,

Merci d'avoir pris le temps de me répondre.
Cela correspond bien a ce que je cherche. Quand j'active le bouton "Quitter" je reste sur la feuille active à ce moment là et j'effectue de maniere transparente l'effacement des autres feuilles.
Mais je voudrais être certain d'avoir bien compris l'utilisation de cette instruction.
On désactive le rafraichissement de l'écran puis on le rétablis, c'est bien ça?

En tout cas merci à vous.
Cordialement.
Mistral
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
9 nov. 2009 à 20:00
Re,

oui, c'est tout à fait ça.
eric
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
9 nov. 2009 à 20:17
Bonsoir

Sheets("Feuil1").Select
je pense aussi qu'il y a une solution pour travailler sur les feuilles cachées sans les afficher, donc adns
Sheets("Feuil1").Select
en remplaçant le select par activate
sous cette condition, excel exècute les macro sans afficher les feuilles.

crdlmnt
0