Savoir si un formulaire est chargée en mémoire?
Le
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
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
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" news:j6fa0i$tkp$
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" news:j6fa0i$tkp$
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" news:j6fa0i$tkp$
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.
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" news:j6fh6k$i1s$
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)
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,
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)