Bonjour,
Est-il possible dans une macro de tester si un formulaire est ouvert et si oui le fermer à partir d'un autre formulaire et tout ça par macro?
Si oui, comment? Je n'est pas vu d'équivalent du test IsLoaded par macro...
Merci!
Anne
Version imprimable
Bonjour,
Est-il possible dans une macro de tester si un formulaire est ouvert et si oui le fermer à partir d'un autre formulaire et tout ça par macro?
Si oui, comment? Je n'est pas vu d'équivalent du test IsLoaded par macro...
Merci!
Anne
Bonsoir,
Quel serait l'avantage de le faire avec une macro plutôt qu'avec du code VBA ?
Cdlt,
Bonjour.
Une idée : demander systématiquement la fermeture et gérer l'erreur si le formulaire n'étais pas ouvert.
Je ne me sers pas des macros, je suis de l'avis de User :salut:, mais je pense que c'est possible.
A+
la paresse ;) non en fait plus prosaïquement j'ai un formulaire continu et je souhaite que lorsque je sélectionne un certain enregistrement, une petite fenêtre s'ouvre et se ferme selon la valeur de l'enregistrement..du coup, comme je ne sais pas (je n'ai pas cherché...d'où ma paresse) ouvrir un formulaire en VBA, j'ai créé un bouton qui ouvre un formulaire selon un critère, j'ai recopié la macro pour la mettre SurActivation de mon formulaire...
En fait je réussis partiellement à faire ce que je veux faire en faisant ExécuterCode par macro et insérant des fonctions en VBA (le comble)
mais ça ne fonctionne pas (la fenêtre ouverte passe en arrière plan mais ne se ferme pas)...seule l'action ouvrir le formulaire fonctionne par macro..Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Function IsLoaded(ByVal strFormName As String) As Integer ' Retourne True si le formulaire spécifié est ouvert. Const conObjStateClosed = 0 Const conDesignView = 0 If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then If Forms(strFormName).CurrentView <> conDesignView Then IsLoaded = True End If End If End Function Function FermerForm(ByVal strFormName As String) As Integer DoCmd.Close acForm, strFormName FermerForm = True End Function
Mais tu as raison, je vais de ce pas voir comment simplement ouvrir un formulaire par VBA en espérant que la fermeture d'un formulaire à partir d'un autre formulaire fonctionne...j'ai un petit doute...
Bonsoir et salut René ;)
Pour ouvrir un formulaire sur activation di formulaire nommé "Formulaire1", tu peux essayer :
Cdlt,Code:
1
2
3
4
5
6
7 Private Sub Form_Current() If Not CurrentProject.AllForms("Formulaire1").IsLoaded Then DoCmd.OpenForm "Formulaire1" End If End Sub
Merci User!
Bon, tout bête (encore :oops: )
Voilà ce que j'ai fait et qui marche!!
Du coup, au revoir Macro!Code:
1
2
3
4
5
6
7
8
9 Private Sub Form_Current() If Forms![MonForm1]![MaValeur] = 3 Then DoCmd.OpenForm "MonForm2", acNormal, , "MonId= " & Me.MonId Else If IsLoaded("MonForm2") Then FermerForm ("MonForm2") End If End If End Sub
Et merci!
De rien ;)
On préfère souvent le faire en VBA, même il faut un peu de pratique au début.
Cdlt,