Problème affichage d'une USERFORM

Problème affichage d'une USERFORM - VB/VBA/VBS - Programmation

Marsh Posté le 29-07-2010 à 11:57:24    

:hello:  
 
Bonjour à tous !
 
Je viens vers vous car j'ai un souci avec une userform dans un fichier Excel.
Je résume la situation :
 1 - j'ai plusieurs feuilles dont une qui s'appelle ACCUEIL (il y a un logo et un titre) (les autres feuille sont des feuilles de travail)
 2 - à l'ouverture de mon classeur, j'ai un Workbook_Open qui exécute une série de tâche dont :
        - se positionner sur la feuille ACCUEIL
        - afficher une boîte de dialogue pour entrer un mot de passe : MOTDEPASSE
 
Tout fonctionnait bien jusqu'à ce que je modifie l'aspect de ma feuille ACCUEIL hier... (notamment la couleur de fond)...
Quand je rouvre mon fichier et que la boîte de dialogue MOTDEPASSE s'affiche, c'est l'ancienne version de la feuille ACCUEIL qui s'affiche...
 
J'avoue ne pas trop comprendre là...
 
J'ai également tenter de supprimer carrément ma feuille ACCUEIL : le Workbook_Open se positionne donc sur une autre feuille et affiche la boîte MOTDEPASSE... et la vieille version ACCUEIL s'affiche derrière la boîte...  :fou:  
 
J'ai aussi détruit la boîte MOTDEPASSE et en ai recréé une autre... et là, c'est pareil, j'ai toujours la feuille ACCUEIL ancienne version derrière...  :fou:  
 
Alors, je me demande s'il n'y a pas une action à exécuter avant que la boîte ACCUEIL ne s'affiche...
 
Quelqu'un peut m'aider ???


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 29-07-2010 à 11:57:24   

Reply

Marsh Posté le 29-07-2010 à 13:10:16    

Tu supprimes une feuille, notamment ACCUEIL, et elle reaparait comme par magie juste en appelant un userform ???
 
Tu dois oublier de nous dire un truc la je pense...


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 29-07-2010 à 13:29:59    

Non, je confirme bien !
 
Dans ma macro Workbook_Open, j'ai  
 

Code :
  1. Sheets("ACCUEIL" ).select
  2. MOTDEPASSE.Show


Là, c'est l'ancienne version de la feuille ACCUEIL qui apparaît derrière la boîte MOTDEPASSE.
 
Si je change la première ligne en :

Code :
  1. Sheets("TRAVAIL" ).select
  2. MOTDEPASSE.Show


TRAVAIL étant une autre feuille, j'ai le même résultat...
 
Mais ce qui est encore plus étonnant, c'est que si je mets un 'Stop' avant la première ligne, que j'enregistre et rouvre mon fichier, que j'exécute en pas à pas via F8, c'est bien la feuille TRAVAIL qui va s'afficher derrrière ma boîte...  :fou:  
 
Et si je supprime tout bonnement ma feuille ACCUEIL, j'ai le même phénomène...
 
En ce moment, je neutralise les lignes qui précèdent le bout de code cité plus haut en premier.
Il semblerait que ce soit des lignes de codes que j'ai insérées avant pour "caler" toutes mes feuilles de travail.
 
 ;)  
 


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 29-07-2010 à 13:36:04    

Sinon, le truc qui résoud le problème est de changer mon code par ça :
 

Code :
  1. Sheets("ACCUEIL" ).select
  2. Application.ScreenUpdating = True
  3. Application.ScreenUpdating = False
  4. MOTDEPASSE.Show


Message édité par scaryfan le 29-07-2010 à 13:36:17

---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 29-07-2010 à 13:44:16    

Ah bah voila...
 
Une fois le fichier fermé et enregistré tu ne dois pas avoir le souci.
 
Dans ton code tu dois utiliser Application.ScreenUpdating = False, ce qui fait que l'ecran n'est pas mis a jour, donc il garde en arriere plan ta feuille ACCUEIL.
 
Tout simplement.


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 29-07-2010 à 13:56:18    

:whistle:  
 
En fait, j'ai trouvé la soluce...
[pas taper... aïe]
 
Ma macro exécute différentes tâches avant d'afficher la boîte MOTDEPASSE.
L'une de ces tâches est d'ouvrir un autre classeur pour faire une certaine vérification.
Le souci est que ce fameux fichier a également une feuille ACCUEIL (ancienne version) que je n'ai pas encore mis à jour...
Le Workbook_Open de ce fichier exécute à un moment un Application.ScreenUpDating=True puis False...
Une fois ce fichier refermé, l'affichage gardait bien cette page à l'écran...
 
 :whistle:  
 
[aïe]
 
 :hello:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 29-07-2010 à 14:11:36    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed