IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Popup menu problème de manipulation


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut Popup menu problème de manipulation
    Bonjour,

    Dans cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub chose(varTexte As String, Nb As Integer)
    ' First, add two buttons to the menu.
     
                With Application.CommandBars.Add(Name:=Mname, Position:=msoBarPopup, MenuBar:=False, Temporary:=True)
                With .Controls.Add(Type:=msoControlButton)
                     .Caption = varTexte
                     .FaceId = 71 + Nb
                     .OnAction = "'" & ThisWorkbook.Name & "'!" & "TestMacro"
     
          End With
          End With
     
    End Sub
    Quand je fais l'appel suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Call chose("Tous les types", 0)
    ça fonctionne bien

    Mais Quand je fais 2 appels ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Call chose("Tous les types", 0)
     
             Call chose("Tous les types", 1)
    le programme ne fonctionne plus, Svp pourquoi cette erreur et merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Svp pourquoi cette erreur et merci
    Bonjour,

    Quelle est l’erreur ?

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Erreur d’exécution '5'

    Argument ou appel de procédure incorrect

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Application.CommandBars.Add(Name:=Mname, Position:=msoBarPopup, MenuBar:=False, Temporary:=True)
    Peut être tu veux créer 2 objets avec le même nom contenu dans la variable Mname

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    Bonsoir,

    puis-je voir la modification sur le code pour bien comprendre et merci également.

    Cdt

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    A quoi sert ta variable Mname et qu'est ce qu'elle contient?

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    Il est défini :

    Public Const Mname As String = "MyPopUpMenu"

    le problème c'est que je voulais réduire le nombre de lignes des instructions en utilisant une fonction.

    quand je fais le code ci-dessus y a pas de problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    With Application.CommandBars.Add(Name:=str, Position:=msoBarPopup, MenuBar:=False, Temporary:=True)
    With .Controls.Add(Type:=msoControlButton)
    .Caption = "test1"
    .FaceId = 72 
    .OnAction = "'" & ThisWorkbook.Name & "'!" & "TestMacro"
     
    End With
     
    With .Controls.Add(Type:=msoControlButton)
    .Caption = "test2"
    .FaceId = 71 
    .OnAction = "'" & ThisWorkbook.Name & "'!" & "TestMacro"
     
    End With
     
    End With

  8. #8
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    As tu compris que tu ne peux pas nommer 2 objets avec un même nom. Comme si tu vas donner un même nom à tes 2 fils

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    Oui, effectivement c'est ce j'ai essayé de faire, deux noms différents et le message ne cesse pas de s'afficher:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Call chose("Tous les types", "Mname1", 0)
    Call chose("Tous les types", "Mname2", 1)
     
     
    Sub chose(varTexte As String, str As String, Nb As Integer)
    ' First, add two buttons to the menu.
     
    With Application.CommandBars.Add(Name:=str, Position:=msoBarPopup, MenuBar:=False, Temporary:=True)
    With .Controls.Add(Type:=msoControlButton)
    .Caption = varTexte
    .FaceId = 71 + Nb
    .OnAction = "'" & ThisWorkbook.Name & "'!" & "TestMacro"
     
    End With
    End With
     
    End Sub

  10. #10
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub chose(varTexte As String, Mname As String, Nb As Integer)
     
    On Error Resume Next
    Application.CommandBars(Mname).Delete 'On supprime s'il existe
    On Error GoTo 0
     
    With Application.CommandBars.Add(Name:=Mname, Position:=msoBarPopup, MenuBar:=False, Temporary:=True)
        With .Controls.Add(Type:=msoControlButton)
            .Caption = varTexte
            .FaceId = 71 + Nb
            .OnAction = "'" & ThisWorkbook.Name & "'!" & "TestMacro"
        End With
    End With
    End Sub

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    Merci, Le programme s'execute sans problème mais après ces
    deux appel:

    Call chose("Tous les types", "Mname", 0)

    Call chose("Tous les types 2", "Mname2", 1)
    je ne vois que le dernier appel qui s'effectue

    j'attendais voir un menu:

    ----------------
    |Tous les types|
    ----------------
    |Tous les types2|
    ----------------

Discussions similaires

  1. [Débutant] Problème données popup menu
    Par Yul56 dans le forum Interfaces Graphiques
    Réponses: 33
    Dernier message: 30/06/2015, 13h49
  2. problème d'appel entre le popup-menu et un botton
    Par Braiki Mahdi dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 30/04/2010, 08h08
  3. [Débutant] problème popup menu
    Par jane40 dans le forum Interfaces Graphiques
    Réponses: 10
    Dernier message: 17/04/2009, 16h30
  4. [PageControl] problème avec le popup menu
    Par Rayek dans le forum Composants VCL
    Réponses: 2
    Dernier message: 13/02/2006, 15h56
  5. Mettre un popup menu invisible ??
    Par Alberto dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/12/2002, 09h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo