Activer Excel pour affichage userform

madbomber Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 juin 2007 - 7 juin 2007 à 16:05
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 13 juin 2007 à 15:55
Bonjour le forum!!

Je suis novice en vbscript mais je connais assez bien le VBA d'Excel.
Voila mon souci.
J'ai une macro sous excel qui affiche un userform toutes les 10 min ... le problème est que si je reduit ma fenetre Excel dans la barre des taches de windows XP pour faire autre chose (travailler sur une autre application mais pas Excel), qd le userform doit s'afficher, je suis obligé de cliquer sur l'application Excel dans la barre des taches (qui se met a clignoter) pour qu'il s'affiche. Quel pourrait etre le code qui permettrait juste d'activer  automatiquement mon classeur Excel qd le userform doit apparaitre??

Si vous voulez des precisions sur ce petit problème je reste disponible...
Merci d'avance

madb

24 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
7 juin 2007 à 16:13
Tu cherches ton userform avec l'api Findwindow et tu utilise l'api SetForGroundWindow pour la mettre au premier plan.

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
7 juin 2007 à 16:14
Salut au fait, voilà les API:

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
0
madbomber Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 juin 2007
7 juin 2007 à 16:15
oups je ne suis pas sur le bon theme ... :( maudite molette de sourie

J'ai re-posté ce message dans le bon theme donc si un admin peut supprimer celui ci  ce serait cool

Desolé
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
7 juin 2007 à 16:17
Déplacé plutôt et supprimer l'autre vu que tu as des réponse ici!

Sinon exemple:

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long

Dim Hwnd as long
Hwnd = FindWindox(VbNullString, "CaptionDuUsermform")
SetForgroundWindow(Hwnd)

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
0

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

Posez votre question
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
7 juin 2007 à 16:24
0
madbomber Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 juin 2007
7 juin 2007 à 16:51
J'ai essayé ton code VBA, je n'ai pas d'erreur et pourtant ca ne marche pas ..
Je vais etre plus precis peut etre que l'on peut affiner le truc.
En fait je cré une interface sur windows XP qui en gros partage l'écran entre un fichier Excel et une application d'un logiciel graphique et l'utilisateur doit les voir en meme temps. Le truc c que l'utilisateur peut cliquer sur le graphique pour avoir certains détail blabla et donc l'activewindow devient l'appli graphique et de temps en temps l'Excel balance une alerte sous forme de userform et si c'est l'appli graphique d'activée alors Excel clignote en bas en attendant desesperement que je clique dessus... Evidement qd c'est Excel qui est actif la ya aucun probleme...

En tout cas un grand merci de m'aider c'est tres sympa
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
7 juin 2007 à 16:57
Fais voir le code que tu as mis et où! Sinon je vérai ça demain! Salut!

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 juin 2007 à 19:10
Salut,

attention :

Hwnd = FindWindo x (VbNullString, "CaptionDuUsermform")
c'est FindWindow ^^

Pour infos, il y a aussi l'API ShowWindow

@++

<hr size ="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
madbomber Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 juin 2007
8 juin 2007 à 09:08
Voici mon code ...

Dans un module


Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long


sub ma_macro


....


If Seuil_actuel <> Seuil_précédent And Seuil_actuel <> "" And Seuil_précédent <> "" Then


Dim hwnd As Long
hwnd = FindWindow(vbNullString, "alerte_pop_up")
SetForegroundWindow (hwnd)


Alerte_pop_up.Label2 = "Le tag " & Tag & " " & Description & " du service " & Service & " situé sur l'atelier " & Atelier & " vient de passer du seuil " & Seuil_précédent & " au seuil " & Seuil_actuel & " en passant de la valeur " & Valeur_précédente & " à la valeur " & Valeur_actuelle
Alerte_pop_up.Show vbModeless
....

Faut'il que je mette la commande que tu m'a donné dans le initialize du userform?

Merci encore pour ton aide
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
8 juin 2007 à 09:11
Tu l'appelles à quel moment ce bout de code?

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
0
madbomber Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 juin 2007
8 juin 2007 à 09:13
Juste avant le userform.show
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
8 juin 2007 à 09:17
"J'ai une macro sous excel qui affiche un userform toutes les 10 min ..."

Il faut que tu mettes ce code dans cette macro!

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
0
madbomber Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 juin 2007
8 juin 2007 à 09:40
oui oui c'est bien la meme macro dont on parle... j'avais mis tte les 10 minutes car la valeur test du "if" arrive a peu pres tte les 10 min, 
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
8 juin 2007 à 09:44
T'as vérifier que le hwnd prennait bien une valeur?

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
0
madbomber Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 juin 2007
8 juin 2007 à 09:51
en effet je n'ai pas de valeur hwnd = 0
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
8 juin 2007 à 09:55
"alerte_pop_up") c'est le nom ou la caption du userform! Car pour ça marche il faut que ce soit la caption!

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
0
madbomber Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 juin 2007
8 juin 2007 à 10:34
hwnd prend une valeur maintenant et pourtant ca ne s'affiche pas devant....
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
8 juin 2007 à 10:40
Voit avec ShowWindow comme le suggérai mortalino.

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
8 juin 2007 à 11:00
ou alors applique ce code au classeur excel et ensuite au userform!

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
0
madbomber Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 juin 2007
8 juin 2007 à 13:38
je n'arrive pas a grand chose... Sinon comme il suffit qu'Excel soit actif pour que ca s'affiche devant peux tu me donner le code pour activer le programme Excel depuis un script vbs... (juste activer mon classeur pas l'ouvrir car il est deja ouvert)

merci

le classeur s'appelle "poste de supervision.xls"
0
Rejoignez-nous