VBA Pb combobox qui appelle des macros
Résolu
Groju
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Groju Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Groju Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai rencontré un problème que j'ai résolu par un bricolage, et j'aimerais savoir si vous auriez une idée.
Je veux, grâce à la comboboxPeriode et la validation par le BtOK.
Récupérer la valeur de la combobox, et lancer la macro correspondante,
sachant que chaque valeur de la combobox est orthographié de la même manière que chacune des macros associés.
Code bricolé (mais qui marche)
Private Sub BtOK_Click()
UFPrint.Hide
If ComboBoxPeriode.Value = "Trimestre1" Then
Application.Run ("Macro1")
Else
If ComboBoxPeriode.Value = "Trimestre2" Then
Application.Run ("Macro2")
Else
If ComboBoxPeriode.Value = "Trimestre3" Then
Application.Run ("Macro3")
Else
If ComboBoxPeriode.Value = "Trimestre4" Then
Application.Run ("Macro4")
Else
Application.Run ("GlobalMacro")
End If
End If
End If
End If
End Sub
Auriez vous une meilleure solution?
J'avais pensé à :
Dim Z as string
ComboBoxPeriode.Value = Z
Application.Run ("Z")
mais cela ne marche pas.
J'ai besoin d'aide, ma solution marche car il n'y a que 5 possibilités mais si il y en avais 15 ...
J'espère avoir été clair.
Merci d'avance.
Julien
J'ai rencontré un problème que j'ai résolu par un bricolage, et j'aimerais savoir si vous auriez une idée.
Je veux, grâce à la comboboxPeriode et la validation par le BtOK.
Récupérer la valeur de la combobox, et lancer la macro correspondante,
sachant que chaque valeur de la combobox est orthographié de la même manière que chacune des macros associés.
Code bricolé (mais qui marche)
Private Sub BtOK_Click()
UFPrint.Hide
If ComboBoxPeriode.Value = "Trimestre1" Then
Application.Run ("Macro1")
Else
If ComboBoxPeriode.Value = "Trimestre2" Then
Application.Run ("Macro2")
Else
If ComboBoxPeriode.Value = "Trimestre3" Then
Application.Run ("Macro3")
Else
If ComboBoxPeriode.Value = "Trimestre4" Then
Application.Run ("Macro4")
Else
Application.Run ("GlobalMacro")
End If
End If
End If
End If
End Sub
Auriez vous une meilleure solution?
J'avais pensé à :
Dim Z as string
ComboBoxPeriode.Value = Z
Application.Run ("Z")
mais cela ne marche pas.
J'ai besoin d'aide, ma solution marche car il n'y a que 5 possibilités mais si il y en avais 15 ...
J'espère avoir été clair.
Merci d'avance.
Julien
A voir également:
- VBA Pb combobox qui appelle des macros
- Appelle masqué - Guide
- Numéro 06 qui appelle et raccroche - Guide
- Appelle telephonique - Guide
- Comment s'appelle l’adresse qui est attribuée à un appareil quand il se connecte à internet et qui permet de l'identifier sur le réseau ? - Guide
- Dans le document à télécharger, trouvez les lettres situées derrière les rectangles pour reconstituer le nom du chat. comment s'appelle-t-il ? - Forum InDesign
5 réponses
Re,
peut être tout simplement comme cela
Private Sub ComboBox1_Click()
Application.Run (ComboBox1.Value)
End Sub
le combobox affiche les noms exacts des macros en respectant les majuscules minuscules s'il y a et le fait de cliquer sur un nom de macro dans le combobox la macro s'exécute
ou comme cela si tu as nommé ton combobox "ComboBoxPeriode"
Private Sub ComboBoxPeriode_Click()
Application.Run (ComboBoxPeriode.Value)
End Sub
peut être tout simplement comme cela
Private Sub ComboBox1_Click()
Application.Run (ComboBox1.Value)
End Sub
le combobox affiche les noms exacts des macros en respectant les majuscules minuscules s'il y a et le fait de cliquer sur un nom de macro dans le combobox la macro s'exécute
ou comme cela si tu as nommé ton combobox "ComboBoxPeriode"
Private Sub ComboBoxPeriode_Click()
Application.Run (ComboBoxPeriode.Value)
End Sub
Salut,
Si la liste de ton combobox est le reflet exact des noms de tes codes, tu peux faire
Private Sub ComboBox1_Change()
If ComboBox1.Value = "Trimestre1" Then Call Trimestre1
End Sub
Si la liste de ton combobox est le reflet exact des noms de tes codes, tu peux faire
Private Sub ComboBox1_Change()
If ComboBox1.Value = "Trimestre1" Then Call Trimestre1
End Sub
Escusez moi, je viens de me rentre compte que je me suis trompé.
Mon code bricolé (mais qui marche) c'est:
Private Sub BtOK_Click()
UFPrint.Hide
If ComboBoxPeriode.Value = "Macro1" Then
Application.Run ("Macro1")
Else
If ComboBoxPeriode.Value = "Macro2" Then
Application.Run ("Macro2")
Else
If ComboBoxPeriode.Value = "Macro3" Then
Application.Run ("Macro3")
Else
If ComboBoxPeriode.Value = "Macro4" Then
Application.Run ("Macro4")
Else
Application.Run ("GlobalMacro")
End If
End If
End If
End If
End Sub
Mais je voudrais remplacer cette série de "If Then Else" par un code plus harmonieux dirons nous ! Parce que si j'ai 20 valeurs dans ma combobox, je ne veux pas écrire 20 "If" imbriqués les uns dans les autres. (source d'erreur, et impropre)
Et oui Mike-31, le combobox est le reflet exact des noms des codes.
Mon code bricolé (mais qui marche) c'est:
Private Sub BtOK_Click()
UFPrint.Hide
If ComboBoxPeriode.Value = "Macro1" Then
Application.Run ("Macro1")
Else
If ComboBoxPeriode.Value = "Macro2" Then
Application.Run ("Macro2")
Else
If ComboBoxPeriode.Value = "Macro3" Then
Application.Run ("Macro3")
Else
If ComboBoxPeriode.Value = "Macro4" Then
Application.Run ("Macro4")
Else
Application.Run ("GlobalMacro")
End If
End If
End If
End If
End Sub
Mais je voudrais remplacer cette série de "If Then Else" par un code plus harmonieux dirons nous ! Parce que si j'ai 20 valeurs dans ma combobox, je ne veux pas écrire 20 "If" imbriqués les uns dans les autres. (source d'erreur, et impropre)
Et oui Mike-31, le combobox est le reflet exact des noms des codes.
Bonsoir,
Sans tester car il est tard, essaie qcq chose comme ça :
If left(ComboBoxPeriode.Value,5) = "Macro" Then
Application.Run (ComboBoxPeriode.Value)
Else
Application.Run ("GlobalMacro")
endif
eric
Sans tester car il est tard, essaie qcq chose comme ça :
If left(ComboBoxPeriode.Value,5) = "Macro" Then
Application.Run (ComboBoxPeriode.Value)
Else
Application.Run ("GlobalMacro")
endif
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question