OVH Cloud OVH Cloud

Choisir une macro via une liste déroulante

3 réponses
Avatar
AB
Bonjour à tous,
Je cherche comment choisir une macro à éxécuter parmi une dizaine, à partir
d'une liste déroulante dans un formulaire. (actuellement, j'ai 10 boutons,
un par macro, ça commence à faire désordre...)
C'est possible, de manière simple ? (Heu...je précise que je ne connais rien
au VBA d'Access).
Merci
AB

3 réponses

Avatar
Hugo
Tu te créer une liste déroulante contenant le nom de tes
macros et un bouton exécuté


Sur l'événement OnClick du bouton tu inscrit le code
suivant:
-------------------------------
Select Case me.lst1.value

Case Macro1
DoCmd.RunMacro "Macro1", , ""

Case Macro2
DoCmd.RunMacro "Macro2", , ""

Case Macro3
DoCmd.RunMacro "Macro3", , ""

end select
--------------------------------

lst1 est le nom de la liste déroulante
Macro1, macro2 et macro3 sont les noms des macros(doit
être les même nom que ceux inscrit dans la liste
déroulante)



-----Message d'origine-----
Bonjour à tous,
Je cherche comment choisir une macro à éxécuter parmi une
dizaine, à partir

d'une liste déroulante dans un formulaire. (actuellement,
j'ai 10 boutons,

un par macro, ça commence à faire désordre...)
C'est possible, de manière simple ? (Heu...je précise que
je ne connais rien

au VBA d'Access).
Merci
AB


.



Avatar
Raymond
Bonsoir.

Tu crées une combobox nommée Modifiable1 par exemple, avec les paramètres
"liste valeurs" et "limité à list = oui".
pour être compatible 2000, 2002 et 2003 tu entres ce code dans form_load et
sur afterupdate de la liste modifiable. Si tu passes par additem tu ne seras
pas compatible 2000.

Private Sub Form_Load()
Dim Objao As AccessObject
Me.Modifiable1.RowSource = ""
For Each Objao In CurrentProject.AllMacros
Me.Modifiable1.RowSource = Me.Modifiable1.RowSource & Objao.Name &
";"
Next Objao
End Sub

Private Sub Modifiable1_AfterUpdate()
DoCmd.RunMacro Me.Modifiable1
End Sub

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"AB" a écrit dans le message de
news:
Bonjour à tous,
Je cherche comment choisir une macro à éxécuter parmi une dizaine, à
partir

d'une liste déroulante dans un formulaire. (actuellement, j'ai 10 boutons,
un par macro, ça commence à faire désordre...)
C'est possible, de manière simple ? (Heu...je précise que je ne connais
rien

au VBA d'Access).
Merci
AB




Avatar
AB
Réponses rapides dont je vous remercie chaleureusement.
Je vais essayer de suivre vos conseils.
A+
AB
"Raymond" a écrit dans le message de
news:
Bonsoir.

Tu crées une combobox nommée Modifiable1 par exemple, avec les paramètres
"liste valeurs" et "limité à list = oui".
pour être compatible 2000, 2002 et 2003 tu entres ce code dans form_load
et

sur afterupdate de la liste modifiable. Si tu passes par additem tu ne
seras

pas compatible 2000.

Private Sub Form_Load()
Dim Objao As AccessObject
Me.Modifiable1.RowSource = ""
For Each Objao In CurrentProject.AllMacros
Me.Modifiable1.RowSource = Me.Modifiable1.RowSource & Objao.Name &
";"
Next Objao
End Sub

Private Sub Modifiable1_AfterUpdate()
DoCmd.RunMacro Me.Modifiable1
End Sub

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"AB" a écrit dans le message de
news:
Bonjour à tous,
Je cherche comment choisir une macro à éxécuter parmi une dizaine, à
partir

d'une liste déroulante dans un formulaire. (actuellement, j'ai 10
boutons,


un par macro, ça commence à faire désordre...)
C'est possible, de manière simple ? (Heu...je précise que je ne connais
rien

au VBA d'Access).
Merci
AB