Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ontime

1 réponse
Avatar
Emcy
salut, je repose ma question vu qu'on ne m'a pas repondu=20
correctement

C'est pas =E7a que je veux.
Je veux pouvoir planifier des taches =E0 l'aide d'excel=20
(pas avec le planificateur de t=E2ches ).
Je me suis arrang=E9 pour que le classeur soit ouvert d=E8s=20
le d=E9marrage d'excel : le probl=E8me est qu'il faut=20
qu'excel reprenne la main si je suis entrain d'utiliser=20
un autre logiciel.
Remarque : j'ai dit que je voulais afficher un msgbox=20
(c'etait juste un exemple) mais je voudrais aussi pouvoir=20
ouvrir un userform avec des variables bien d=E9finies.

>-----Message d'origine-----
>Bonjour Emcy,
>
>Si ton probl=E8me est de faire afficher un message,
>
>Tu ouvres NotePad,
>
>Tu inscris cette ligne de code :
>
>MsgBox "salut",4150, "Attention"
>
>Tu enregistres le fichier sous le Nom "Salut.vbs"
>
>Tu utilises le planificateur de t=E2ches de Windows, et tu=20
d=E9termines l'heure o=F9 tu d=E9sires faire afficher l'heure ou
>selon, la fr=E9quence =E0 laquelle le message doit=20
s'afficher.
>
>
>
>Si tu veux utiliser la m=E9thode "ontime" tu dois=20
d=E9clencher la macro "Main" avant d'aller travailler dans=20
d'autres
>applications... Sinon comment excel peut-il deviner la=20
t=E2che qu'il doit accomplir et quand il doit la r=E9aliser.
>
>
>Salutations!
>
>
>
>
>"Emcy" a =E9crit dans le message de=20
news:1ee201c3835f$231e5cb0$a401280a@phx.gbl...
>salut,
>
>J'ai fait cette macro :
>
>Sub main()
>
>Application.OnTime Now + TimeValue("00:00:15"), "message"
>
>End Sub
>


>Sub message()
>
>MsgBox ("salut")
>
>End Sub
>
>Comment faire pour que le message s'affiche si Excel n'a
>pas la main ?
>
>
>.
>
.

1 réponse

Avatar
Hervé
Salut Emcy,
Si tu veux que ta form s'affiche au 1er plan quelque soit le programme que
tu utilise, il te faut utiliser des APIs. La form s'affiche même si elle n'a
pas le focus.
A mettre dans le module de ta form et pour lancer la proc qui va ouvrir la
form, utilise OnTime dans le module du classeur sur Open :
Private Declare Function SetWindowPos _
Lib "user32" ( _
ByVal Hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long

Private Declare Function FindWindowA _
Lib "user32" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Private Sub UserForm_Initialize()
Dim Position As Long
Dim Hwnd As Long
Dim Hauteur As Long
Dim Largeur As Long
With Me
Hauteur = .Height
Largeur = .Width

Hwnd = FindWindowA(vbNullString, .Caption)

Position = SetWindowPos(Hwnd, -1, _
.Top, _
.Left, _
.Width, _
.Height, 0)

.Width = Largeur
.Height = Hauteur
End With
End Sub

Hervé.

"Emcy" a écrit dans le message news:
1248d01c38422$a4418e20$
salut, je repose ma question vu qu'on ne m'a pas repondu
correctement

C'est pas ça que je veux.
Je veux pouvoir planifier des taches à l'aide d'excel
(pas avec le planificateur de tâches ).
Je me suis arrangé pour que le classeur soit ouvert dès
le démarrage d'excel : le problème est qu'il faut
qu'excel reprenne la main si je suis entrain d'utiliser
un autre logiciel.
Remarque : j'ai dit que je voulais afficher un msgbox
(c'etait juste un exemple) mais je voudrais aussi pouvoir
ouvrir un userform avec des variables bien définies.

-----Message d'origine-----
Bonjour Emcy,

Si ton problème est de faire afficher un message,

Tu ouvres NotePad,

Tu inscris cette ligne de code :

MsgBox "salut",4150, "Attention"

Tu enregistres le fichier sous le Nom "Salut.vbs"

Tu utilises le planificateur de tâches de Windows, et tu
détermines l'heure où tu désires faire afficher l'heure ou

selon, la fréquence à laquelle le message doit
s'afficher.




Si tu veux utiliser la méthode "ontime" tu dois
déclencher la macro "Main" avant d'aller travailler dans

d'autres
applications... Sinon comment excel peut-il deviner la
tâche qu'il doit accomplir et quand il doit la réaliser.



Salutations!




"Emcy" a écrit dans le message de
news:1ee201c3835f$231e5cb0$

salut,

J'ai fait cette macro :

Sub main()

Application.OnTime Now + TimeValue("00:00:15"), "message"

End Sub




Sub message()

MsgBox ("salut")

End Sub

Comment faire pour que le message s'affiche si Excel n'a
pas la main ?


.

.