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 19/12/2011, 17h28   #1
Nouveau Membre du Club
 
Homme
Administrateur de base de données
Inscription : mai 2011
Messages : 99
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Bâtiment

Informations forums :
Inscription : mai 2011
Messages : 99
Points : 29
Points : 29
Par défaut Cacher les userform actif

Bonjour Forum,

J'ai un projet qui contient une multitude de userform, j'aimerais que lorsque l'événement Workbook_Deactivate est lancé, les userform visible se HIDE et l'orsque l'événement Workbook_Activate est lancé ces même userform réaparaisse.

Merci d'avance!
Beaudelicius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 18h03   #2
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Humm, il existe plusieurs solutions, mais dans le principe, il faut que tu saches au moment de ré-afficher tes UserForm lesquels doivent être affichés.
Donc tu peux par exemple placer dans un module autant de variable boolean que de UserForm (un exemple avec 3 Userform)

Code Module
Code :
1
2
3
Public UserForm1EstVisible as boolean
Public UserForm2EstVisible as boolean
Public UserForm3EstVisible as boolean
Ensuite dans Workbook_Desactivate
Code :
1
2
3
4
5
6
7
8
9
10
If Userform1.visible then 
  UserForm1EstVisible = true
  .hide
end if
 
If Userform2.visible then 
  UserForm2EstVisible = true
  UserForm2.hide
end if
'... ainsi de suite
Dans Workbook_Activate
Code :
1
2
3
if UserForm1EstVisible then UserForm1.show
if UserForm2EstVisible then UserForm2.show
'...
Si tu as vraiment beaucoup de UserForm, une boucle est certainement envisageable, avec un stockage des UserForm Visible plus approprié. Dis nous.

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 20h14   #3
Nouveau Membre du Club
 
Homme
Administrateur de base de données
Inscription : mai 2011
Messages : 99
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Bâtiment

Informations forums :
Inscription : mai 2011
Messages : 99
Points : 29
Points : 29
Oui j'avais pensé à cette option mais mon problème, c'est que si je teste un userform qui n'est pas loader, excel le load par défaut. Comment contourner ce problème?
Beaudelicius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 22h06   #4
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Il ne faut pas confondre Loadé et Visible.
Peut importe que la Form soit chargé en mémoire ou pas, c'est toi qui décide de l'afficher ou non, tu n'as pas à t'occuper de son état de chargement.

Si ce concept te pose problème explique les soucis qu'il génère.
++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 14h33   #5
Nouveau Membre du Club
 
Homme
Administrateur de base de données
Inscription : mai 2011
Messages : 99
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Bâtiment

Informations forums :
Inscription : mai 2011
Messages : 99
Points : 29
Points : 29
COmment on fait alors pour lui dire de ne pas la charger, car si le userform n'est pas loader, lorsqu'il test s'il est visible ou non, il ne reconnait pas la variable et donc il lance l'initialisation de ma userform.

Merci!
Beaudelicius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 17h13   #6
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Ca n'a pas d'importance, encore une fois, le fait de charger la feuille ne change rien, celle-ci ne sera affichée que si tu en fais la demande express via UserForm.show.

Si ça n'est pas déjà fait, essai le code que je t'ai proposé au dessus.

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 19h02   #7
Nouveau Membre du Club
 
Homme
Administrateur de base de données
Inscription : mai 2011
Messages : 99
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Bâtiment

Informations forums :
Inscription : mai 2011
Messages : 99
Points : 29
Points : 29
OK je crois que j'ai trouvé un façon, j'utilise le principe avec tes variables,

Mais au lieu de tester s'ils sont visible ou non, je met la variable = true quand mon userform est activé et lorsqu'il se désactive ou se hide, je remet la variable à False.

Ça fonctionne bien merci!
Beaudelicius 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 20h18.


 
 
 
 
Partenaires

Hébergement Web