begin process at 2012 02 15 11:44:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

VBA

 > 

Probleme d'utilisation du parametre OnAction - C'est un peu Urgent -


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme d'utilisation du parametre OnAction - C'est un peu Urgent -

mercredi 8 mars 2006 à 12:09:16 | Probleme d'utilisation du parametre OnAction - C'est un peu Urgent -

Little_Dev

Bonjour,

J'ai un soucis pour utiliser le parametre OnAction en VBA.

Mon probleme est le suivant, j'ai créer un menu deroulant dans Excel, et je voudrait lors du clique sur le menu, il execute une fonction ou procedure avec parametre(s).

Mais je n'arrive pas à passer le parametre dans la fonction ou procedure (ci-dessous un exemple)

Sub Créer_Menu()
    With Application
        With .CommandBars(1).Controls.Add(msoControlPopup, before:=10)
            .caption = "Mon Menu Perso"
                With .Controls.Add(msoControlPopup)
                    .caption = "Menu 1"
                    With .Controls.Add(msoControlButton)
                        .caption = "Sous Menu 1.1"
                        .OnAction = "PRC_TST"
                    End With
            End With
        End With
    End With
End Sub

Public Sub PRC_TST(ByVal STR_STRING As String)
    Dim STR_TST  

    STR_TST = STR_STRING
End Sub


Dans l'attente d'une reponse, je vous remercie

mercredi 8 mars 2006 à 13:23:52 | Re : Probleme d'utilisation du parametre OnAction - C'est un peu Urgent -

jpleroisse

Bonjour, Public Sub PRC_TST(ByVal STR_STRING As String), n'est pas reconnu comme une macro. jpleroisse
mercredi 8 mars 2006 à 13:37:30 | Re : Probleme d'utilisation du parametre OnAction - C'est un peu Urgent -

zoglub14

Réponse acceptée !
Hello

Il faut que tu crées un chaine de caractère.

Ci dessous un exemple complet

Option Explicit
Function CommandBarAdd(oParentCommandBar As CommandBar, oMacroWrk As Excel.Workbook, sMacroName As String, sToolTip As String, lFaceID As Long, ParamArray args() As Variant) As CommandBarButton
    Dim oBtn As CommandBarButton
    Dim sOnAction As String
    Dim vArg As Variant
    Dim sSeperator As String
   
    Set oBtn = oParentCommandBar.Controls.Add
    oBtn.FaceId = lFaceID
    oBtn.TooltipText = sToolTip
    ' Ci dessous la construction de la chaine pour passer les parametres
    ' dans le OnAction
    sOnAction = "'" & oMacroWrk.Name & "'!'" & sMacroName
    If IsArray(args) Then
        For Each vArg In args
            sOnAction = sOnAction & sSeperator & """" & CStr(vArg) & """"
            sSeperator = ","
        Next
    End If
    'Mettre un Bpx ci dessous pour voir le resultat finale et la constitution de la chaine
    sOnAction = sOnAction & "'"
    oBtn.OnAction = sOnAction
End Function
'Demo code
Sub Test()
    Dim oCmdBar As CommandBar
 
    Set oCmdBar = CommandBars.Add
    'Passe les parametres pour créer la commande bar :
    'quel Doc, le nom de la commandebar, l'intitulé de TooltipText, le N° de l'icone, la parametre 1 et le 2
    CommandBarAdd oCmdBar, ThisWorkbook, "TestClick", "Show Msgbox", 2520, "fdede", "dada"
    'Nom de la nouvelle bar
    oCmdBar.Name = "Test2Bar"
    oCmdBar.Visible = True
End Sub
'Routine appellée par le Onaction avec parametre
Sub TestClick(Optional sParam1 As String, Optional sParam2 As String)
    MsgBox "Param1: " & sParam2 & ". Param2: " & sParam1
End Sub

@+

Zorglub

mercredi 8 mars 2006 à 14:12:21 | Re : Probleme d'utilisation du parametre OnAction - C'est un peu Urgent -

Little_Dev

Bonjour a tous les deux.

Je vous remercie de vous etes intéressé a mon probleme.

Effectivement jpleroisse ce n'est pas une macro, mais une procedure qui fait partie d'une macro, je suis désolés si je me suis mal exprimé lorsque j'ai ennoncé mon probleme.

Un grand merci a Zorglub pour ta solution, qui me convient tout a fait.
Je n'avais pas vu la chose sous cette angle, trop obstiné dans mes idées.

A trés bientot sur le forum de VBFRANCE.

Encore milles merci pour votre gentillesse

@+ Little_Dev ;-)
mercredi 8 mars 2006 à 14:14:57 | Re : Probleme d'utilisation du parametre OnAction - C'est un peu Urgent -

jpleroisse

Re, A tout hasard, je te remet ton code simplement modifé. (Quand même plus simple) Sub Créer_Menu() 'Supprime le menu au cas où il existerait déjà. Call DeleteMenu With Application With .CommandBars(1).Controls.Add(msoControlPopup, before:=10) .Caption = "Mon Menu Perso" With .Controls.Add(msoControlPopup) .Caption = "Menu 1" With .Controls.Add(msoControlButton) .Caption = "Sous Menu 1.1" .FaceId = 162 .OnAction = "MaMacro" End With End With End With End With End Sub Sub DeleteMenu() CommandBars(1).Controls("Mon Menu Perso").Delete End Sub Sub MaMacro() MsgBox "Ceci fonctionne très bien !" End Sub jpleroisse
mercredi 8 mars 2006 à 14:36:06 | Re : Probleme d'utilisation du parametre OnAction - C'est un peu Urgent -

Little_Dev

Ok c'est trés sympathique te ta part jpleroisse.

Merci

Bonne continuation et peut-etre a trés bientot.



Cette discussion est classée dans : menu, parametre, with, onaction, tst


Répondre à ce message

Sujets en rapport avec ce message

Griser une commande du Menu perso Excel 2003 [ par Ednour ] 'Bonjour, 'Le menu perso en VBA fonctionne bien : 4 boutons avec sous-menus. 'Voici le code du premier bouton : Sub Aj_menu_perso() Dim Feuille As Wor [VBA] OnAction appelle une fonction avec paramètres. [ par didrocks ] Bonjour, J'ai un menu (crée dynamiquement). Je veux pour les x items présents dans le menu les associer avec une fonction. J'utilise donc Onaction, Barres de menu et sous menu [ par elolydie ] Bonjour,Je cherche à créer une barre de menu personnalisée qui contient des sous menus.Mon problème est de réussir à créer les boutons dand ce sous me Creer un menu [ par nagattaque ] Bonjour,Je vous explique mon problème :J'ai crée une macro que je voudrai déployer sur plusieurs postes. Pour cela, j'ai crée un .xla et je voudrai da menu word [ par chtibreizh62 ] Je crois qu'alzheimer me guette !Après un long moment, je me replonge dans le VBA Word et je n'arrive pas à finaliser mon menu. Je souhaiterai avoir u SAVOIR SI ON CLIQUE SUR UN MENU [ par Ulala2 ] Bonjour,J'ai un menu avec des sous-menus, et je voudrai savoir s'il est possible de savoir lorsque l'utilisateur clique sur les éléments "parents" du excel with VB [ par armiss ] comment importer des valeurs dans des cellules d'un classeur excel vers un autre classeur? et si les resultats de ce dernier se trouve sur une clonne Menu déroulant dans une InputBox en VBA [ par soremi ] Bonjour,Est ce que quelqu'un pourrait me dire comment on fait pour mettre un Menu déroulant dans une InputBox en VBA.Merci beaucoupsophie Menu démarrer [ par FLAMME_2 ] Bonjour a tous, Je cherche le moyen d'afficher dans un menu normale le contenue du menu démarrer et que quand on clique dessus je voudrais quee ca exe Menu Editor - Créateur de menu [ par tbbuim1 ] Bonjour à tous,Je souhaiterais récupérer la structure du menu de mon MDI afin de pouvoir faire un menu  perso à l'identique.* Comment peut on parcouri


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,466 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales