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

SetForeground pour USF

10 réponses
Avatar
danielos
Bonjour =E0 toutes et =E0 tous,

Le crit=E8re "vbMsgBoxSetForeground" appliqu=E9 =E0 une msgbox permet de =

l'afficher devant toute autre application.

Existe t-il quelque chose de similaire pour un userform ?

Si je place l'instruction "SetForeground" ou "SetForegroundWindow" telle =

quelle dans le code d'initialisation d'un USF, j'ai un message "Sub ou=20
Function non d=E9finie".

Merci d'avance

Daniel

10 réponses

Avatar
MichD
Bonjour,

En utilisant les API de Windows, le formulaire s'affiche
toujours au-dessus de la fenêtre dans l'application Windows
peu importe le classeur que tu affiches. Le code est valide
pour 32 ou 64 bits.

Un fichier Exemple : http://www.cjoint.com/c/EJbkmeK1UQG
Avatar
andre
bonjour
suis hors sujet mais bon
cela fait plusieurs fois que cela m'arrive
et je ne trouve pas le reglage sur firefox
lorsqu'une piece jointe en xlsm comme par ex celle de michD
je clique dessus cela m'ouvre un onglet tout en hieroglyphe
en fait je fait un glisser deposer du fichier sur le bureau,
ouvre excel etc..
pas de probleme pour les autres extensions qui s'enregistre
si vous avez la solution je suis preneur...
merci

--
André
Avatar
Jacquouille
Bonjour
Je n'ai pas de solution à proposer, mais, parfois, on a moins mal lorsque le
voisin a mal aussi ...-)
Perso, j'ai classé l'extension .XLSM comme néfaste au genre humain.
Bonne chance.

jacques, xls-man farouche


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"andre" a écrit dans le message de groupe de discussion :
560d2578$0$4573$

bonjour
suis hors sujet mais bon
cela fait plusieurs fois que cela m'arrive
et je ne trouve pas le reglage sur firefox
lorsqu'une piece jointe en xlsm comme par ex celle de michD
je clique dessus cela m'ouvre un onglet tout en hieroglyphe
en fait je fait un glisser deposer du fichier sur le bureau,
ouvre excel etc..
pas de probleme pour les autres extensions qui s'enregistre
si vous avez la solution je suis preneur...
merci

--
André


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
isabelle
bonjour Daniel,

si c'est vraiment devant toute autre application (sous entendu autre que
microsoft excel), ce n'est pas possible via vba

isabelle

Le 2015-10-01 03:27, danielos a écrit :
Bonjour à toutes et à tous,

Le critère "vbMsgBoxSetForeground" appliqué à une msgbox permet de l'afficher
devant toute autre application.

Existe t-il quelque chose de similaire pour un userform ?

Si je place l'instruction "SetForeground" ou "SetForegroundWindow" telle quelle
dans le code d'initialisation d'un USF, j'ai un message "Sub ou Function non
définie".

Merci d'avance

Daniel
Avatar
danielos
Bonjour à toutes et à tous,

Ce que vous dites,MichD, est tout à fait exact si c'est l'application
utilisée qui lance l'USF (excel, word,...).
Mais dans mon cas, le classeur excel est ouvert à partir de word et le
code de l'USF est dans word.
Alors, oui, il est devant word et même en retirant l'affichage de word
(WordApp.Visible = False), l'USF ne vient pas devant excel. Alors qu'un e
msgbox vient devant excel après avoir masqué word et avec
vbMsgBoxSetForeground.

Merci pour avoir prêté attention à ma demande.
Daniel



MichD a écrit :
Bonjour,

En utilisant les API de Windows, le formulaire s'affiche
toujours au-dessus de la fenêtre dans l'application Windows
peu importe le classeur que tu affiches. Le code est valide
pour 32 ou 64 bits.

Un fichier Exemple : http://www.cjoint.com/c/EJbkmeK1UQG


Avatar
danielos
Bonjour isabelle,

Ok, je te crois car pour moi tu fais référence dans le domaine.
Mais c'est surprenant qu'on puisse y arriver en ouvrant une msgbox et
pas un USF. D'autant plus que dans le code, si on lance l'USF après
l'affichage de la msgbox, il sera bien devant.

Daniel



isabelle a écrit :
bonjour Daniel,

si c'est vraiment devant toute autre application (sous entendu autre qu e
microsoft excel), ce n'est pas possible via vba

isabelle

Le 2015-10-01 03:27, danielos a écrit :
Bonjour à toutes et à tous,

Le critère "vbMsgBoxSetForeground" appliqué à une msgbox permet de
l'afficher
devant toute autre application.

Existe t-il quelque chose de similaire pour un userform ?

Si je place l'instruction "SetForeground" ou "SetForegroundWindow"
telle quelle
dans le code d'initialisation d'un USF, j'ai un message "Sub ou
Function non
définie".

Merci d'avance

Daniel
Avatar
MichD
Un autre fichier exemple d'un formulaire qui lui s'affiche en permanence
à l'écran, peu importe les applications ouvertes.

http://www.cjoint.com/c/EJcklbA0onG


Si tu veux que les procédures soient valides pour le 32 et 64 bits, peu importe
la version d'Excel, Il faut modifier le code à partir du fichier exemple premier
que j'ai publié.
Avatar
Jacquouille
Bonsoir

Juste une réflexion....;
Si je lis bien, tu ouvres Excel à partir de Word.
Ne pourrais-tu commander l'apparition soit de l'USF ou du Msgbox à partir du
VBA de Word.



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"danielos" a écrit dans le message de groupe de discussion :
mul5es$9hv$

Bonjour isabelle,

Ok, je te crois car pour moi tu fais référence dans le domaine.
Mais c'est surprenant qu'on puisse y arriver en ouvrant une msgbox et
pas un USF. D'autant plus que dans le code, si on lance l'USF après
l'affichage de la msgbox, il sera bien devant.

Daniel



isabelle a écrit :
bonjour Daniel,

si c'est vraiment devant toute autre application (sous entendu autre que
microsoft excel), ce n'est pas possible via vba

isabelle

Le 2015-10-01 03:27, danielos a écrit :
Bonjour à toutes et à tous,

Le critère "vbMsgBoxSetForeground" appliqué à une msgbox permet de
l'afficher
devant toute autre application.

Existe t-il quelque chose de similaire pour un userform ?

Si je place l'instruction "SetForeground" ou "SetForegroundWindow" telle
quelle
dans le code d'initialisation d'un USF, j'ai un message "Sub ou Function
non
définie".

Merci d'avance

Daniel






---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
danielos
ça m'a l'air impeccable.
J'ai mis en commentaire ma msgbox et mon usf est bien devant le fichier
excel
Je ne te cacherai pas que ton code est trop compliqué pour mes médioc res
connaissances en vba pour arriver à le suivre...
Merci encore MichD et bonne soirée.

MichD a écrit :

Un autre fichier exemple d'un formulaire qui lui s'affiche en permanenc e
à l'écran, peu importe les applications ouvertes.

http://www.cjoint.com/c/EJcklbA0onG


Si tu veux que les procédures soient valides pour le 32 et 64 bits, p eu
importe
la version d'Excel, Il faut modifier le code à partir du fichier exem ple
premier
que j'ai publié.

Avatar
danielos
Bonjour Jacquouille,

C'est exactement ce que je fais.
A partir de word, un utilisateur ouvre un classeur excel et ensuite une
macro importe une partie d'une feuille dans un tableau du document word.
Je m'étais rendu compte que si le classeur avait été enregistré s ur une
feuille différente de celle qui contenait les données à importer,
l'importation se faisait mais le résultat était n'importe quoi ;-(
Il fallait donc que l'utilisateur indique qu'elle était la bonne feuill e.
Le userform servira à cela en affichant un listbox qui donnera la liste
des feuilles du classeur que l'on vient d'ouvrir et l'utilisateur peut
alors sélectionner la feuille pour lancer l'importation.
Mais pour cela, il fallait que le userform vienne s'afficher devant le
classeur (du moins c'était plus cool). Or même en masquant word, il n e
venait pas devant.

Merci quand même d'avoir proposé cette solution.

Daniel


Jacquouille a écrit :
Bonsoir

Juste une réflexion....;
Si je lis bien, tu ouvres Excel à partir de Word.
Ne pourrais-tu commander l'apparition soit de l'USF ou du Msgbox à
partir du VBA de Word.



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"danielos" a écrit dans le message de groupe de discussion :
mul5es$9hv$

Bonjour isabelle,

Ok, je te crois car pour moi tu fais référence dans le domaine.
Mais c'est surprenant qu'on puisse y arriver en ouvrant une msgbox et
pas un USF. D'autant plus que dans le code, si on lance l'USF après
l'affichage de la msgbox, il sera bien devant.

Daniel



isabelle a écrit :
bonjour Daniel,

si c'est vraiment devant toute autre application (sous entendu autre
que microsoft excel), ce n'est pas possible via vba

isabelle

Le 2015-10-01 03:27, danielos a écrit :
Bonjour à toutes et à tous,

Le critère "vbMsgBoxSetForeground" appliqué à une msgbox permet de
l'afficher
devant toute autre application.

Existe t-il quelque chose de similaire pour un userform ?

Si je place l'instruction "SetForeground" ou "SetForegroundWindow"
telle quelle
dans le code d'initialisation d'un USF, j'ai un message "Sub ou
Function non
définie".

Merci d'avance

Daniel






---
L'absence de virus dans ce courrier électronique a été vérifié e par le
logiciel antivirus Avast.
http://www.avast.com