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

Savoir si un formulaire est chargée en mémoire?

6 réponses
Avatar
MichD
Bonjour,

J'en profite pour poser une petite question. Elles deviennent de plus en plus
rarissimes ! Serait-ce que le canard a un trou dans son gilet de flottaison? ;-))

Je voudrais une fonction personnalisée qui me retourne "Vrai" seulement et
seulement si un formulaire particulier est ouvert... c'est-à-dire charger en
mémoire... il se peut qu'il soit non visible.

Une récompense est promise au premier qui me donnera une réponse satisfaisante.
;-))


MichD
------------------------------------------

6 réponses

Avatar
Péhemme
Bonjour Denis,

Si toi, tu poses des questions, nous, on devient quoi ?
;-)

Une piste : tu mets une variable booléenne à True dans le Initialize du
UserForm.
Dans ta fonction, tu récupères la valeur de cette variable ; si elle est à
True : MsgBox "Il est chargé", si non : MsgBox 'Il n'est pas chargé".
Bien sur, tu mets la variable à False lors de la fermeture dudit Userform.
Enfin, j'dis ça, mais je n'en sais rien.
Bien amicalement
Michel


"MichD" a écrit dans le message de
news:j6fa0i$tkp$
Bonjour,

J'en profite pour poser une petite question. Elles deviennent de plus en
plus
rarissimes ! Serait-ce que le canard a un trou dans son gilet de
flottaison? ;-))

Je voudrais une fonction personnalisée qui me retourne "Vrai" seulement et
seulement si un formulaire particulier est ouvert... c'est-à-dire charger
en
mémoire... il se peut qu'il soit non visible.

Une récompense est promise au premier qui me donnera une réponse
satisfaisante.
;-))


MichD
------------------------------------------

Avatar
Péhemme
Denis,

J'ai trouvé ce fichier sur Google :
http://www.cijoint.fr/cjlink.php?file=cj201110/cijQH5ZqhN.zip

J'ai le droit à combien de cahuètes ?
;-)
Michel



"MichD" a écrit dans le message de
news:j6fa0i$tkp$
Bonjour,

J'en profite pour poser une petite question. Elles deviennent de plus en
plus
rarissimes ! Serait-ce que le canard a un trou dans son gilet de
flottaison? ;-))

Je voudrais une fonction personnalisée qui me retourne "Vrai" seulement et
seulement si un formulaire particulier est ouvert... c'est-à-dire charger
en
mémoire... il se peut qu'il soit non visible.

Une récompense est promise au premier qui me donnera une réponse
satisfaisante.
;-))


MichD
------------------------------------------

Avatar
MichD
Merci Michel,

Pas mal, la solution avec des variables... Sauf si on a plusieurs formulaires, ça peut devenir lourd!
Mais cela a l'avantage d'être simple et devrait fonctionner !

En dinant, j'ai pensé à quelque chose... Juste pour toi Michel, les autres, il est interdit de regarder...

'----------------------------------
Sub Test()
MsgBox EstFormulaireOuvert("userform1")
End Sub
'----------------------------------
Function EstFormulaireOuvert(SonNom As String) As Boolean
Dim X As Integer, A As Integer
X = VBA.UserForms.Count
For A = 0 To X - 1
If UCase(VBA.UserForms(A).Name) = UCase(SonNom) Then
EstFormulaireOuvert = True
Exit Function
End If
Next
End Function
'----------------------------------

Désolé, je ne peux pas remettre le cadeau puisque personne ne m'a pas proposé une "FONCTION PERSONNALISÉE".
Je suppose qu'une croisière dans les Caraïbes n'intéressait personne ! Encore une fois, je vais me sacrifier... ;-)))))

À la prochaine!

MichD
------------------------------------------



"Péhemme" a écrit dans le message de groupe de discussion : 4e8b3f19$0$30759$

Denis,

J'ai trouvé ce fichier sur Google :
http://www.cijoint.fr/cjlink.php?file=cj201110/cijQH5ZqhN.zip

J'ai le droit à combien de cahuètes ?
;-)
Michel



"MichD" a écrit dans le message de
news:j6fa0i$tkp$
Bonjour,

J'en profite pour poser une petite question. Elles deviennent de plus en
plus
rarissimes ! Serait-ce que le canard a un trou dans son gilet de
flottaison? ;-))

Je voudrais une fonction personnalisée qui me retourne "Vrai" seulement et
seulement si un formulaire particulier est ouvert... c'est-à-dire charger
en
mémoire... il se peut qu'il soit non visible.

Une récompense est promise au premier qui me donnera une réponse
satisfaisante.
;-))


MichD
------------------------------------------

Avatar
Péhemme
C'est bien Denis !
Tu vois, tu commences à comprendre le VBA.
:-))
J'ai testé : cela fonctionne.
Plus sérieusement, j'aurais été absolument incapable d'écrire ne serait-ce
que le début d'une telle fonction.
Encore une fois, je vais me sacrifier... ;-)))))


La croisière dans les Caraïbes sera pour une autre fois, mais si tu te sens
seul, fais signe :-)
Merci pour le cadeau "rien que pour moi".
Bien amicalement
Michel


"MichD" a écrit dans le message de
news:j6fh6k$i1s$
Merci Michel,

Pas mal, la solution avec des variables... Sauf si on a plusieurs
formulaires, ça peut devenir lourd!
Mais cela a l'avantage d'être simple et devrait fonctionner !

En dinant, j'ai pensé à quelque chose... Juste pour toi Michel, les
autres, il est interdit de regarder...

'----------------------------------
Sub Test()
MsgBox EstFormulaireOuvert("userform1")
End Sub
'----------------------------------
Function EstFormulaireOuvert(SonNom As String) As Boolean
Dim X As Integer, A As Integer
X = VBA.UserForms.Count
For A = 0 To X - 1
If UCase(VBA.UserForms(A).Name) = UCase(SonNom) Then
EstFormulaireOuvert = True
Exit Function
End If
Next
End Function
'----------------------------------

Désolé, je ne peux pas remettre le cadeau puisque personne ne m'a pas
proposé une "FONCTION PERSONNALISÉE".
Je suppose qu'une croisière dans les Caraïbes n'intéressait personne !
Encore une fois, je vais me sacrifier... ;-)))))

À la prochaine!

MichD
------------------------------------------



"Péhemme" a écrit dans le message de groupe de discussion :
4e8b3f19$0$30759$

Denis,

J'ai trouvé ce fichier sur Google :
http://www.cijoint.fr/cjlink.php?file=cj201110/cijQH5ZqhN.zip

J'ai le droit à combien de cahuètes ?
;-)
Michel



"MichD" a écrit dans le message de
news:j6fa0i$tkp$
Bonjour,

J'en profite pour poser une petite question. Elles deviennent de plus en
plus
rarissimes ! Serait-ce que le canard a un trou dans son gilet de
flottaison? ;-))

Je voudrais une fonction personnalisée qui me retourne "Vrai" seulement
et
seulement si un formulaire particulier est ouvert... c'est-à-dire charger
en
mémoire... il se peut qu'il soit non visible.

Une récompense est promise au premier qui me donnera une réponse
satisfaisante.
;-))


MichD
------------------------------------------

Avatar
Gloops
MichD a écrit, le 04/10/2011 17:50 :
Bonjour,

J'en profite pour poser une petite question. Elles deviennent de plus e n plus
rarissimes ! Serait-ce que le canard a un trou dans son gilet de flotta ison? ;-))

Je voudrais une fonction personnalisée qui me retourne "Vrai" seuleme nt et
seulement si un formulaire particulier est ouvert... c'est-à-dire cha rger en
mémoire... il se peut qu'il soit non visible.

Une récompense est promise au premier qui me donnera une réponse sa tisfaisante.
;-))


MichD
------------------------------------------




Bonjour,

Curieusement, je viens de voir sur une fiche Microsoft

Note When using the acSysCmdGetObjectState argument, Excel requires the
use of Argument3.

http://msdn.microsoft.com/en-us/library/aa199129%28v=office.10%29.aspx

Je n'ai pas de quoi vérifier, mais ça serait intéressant de savoir si
c'est juste un lapsus.

En effet, sous Access il y a deux moyens pour savoir si un formulaire
est ouvert : la boucle comme tu l'as mentionné dans un message
ultérieur, et SysCmd(acSysCmdGetObjectState, acForm, strNomForm)
Avatar
MichD
Bonjour,

Selon moi, cette commande " SysCmd" est disponible dans le VBA de l'application Access et non dans celle d'Excel.


MichD
------------------------------------------
"Gloops" a écrit dans le message de groupe de discussion : j6gdhg$lkl$

MichD a écrit, le 04/10/2011 17:50 :
Bonjour,

J'en profite pour poser une petite question. Elles deviennent de plus en plus
rarissimes ! Serait-ce que le canard a un trou dans son gilet de flottaison? ;-))

Je voudrais une fonction personnalisée qui me retourne "Vrai" seulement et
seulement si un formulaire particulier est ouvert... c'est-à-dire charger en
mémoire... il se peut qu'il soit non visible.

Une récompense est promise au premier qui me donnera une réponse satisfaisante.
;-))


MichD
------------------------------------------




Bonjour,

Curieusement, je viens de voir sur une fiche Microsoft

Note When using the acSysCmdGetObjectState argument, Excel requires the
use of Argument3.

http://msdn.microsoft.com/en-us/library/aa199129%28v=office.10%29.aspx

Je n'ai pas de quoi vérifier, mais ça serait intéressant de savoir si
c'est juste un lapsus.

En effet, sous Access il y a deux moyens pour savoir si un formulaire
est ouvert : la boucle comme tu l'as mentionné dans un message
ultérieur, et SysCmd(acSysCmdGetObjectState, acForm, strNomForm)