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 :

utilisation nom de variable pour le nom d'une commandbars


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    790
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 790
    Points : 183
    Points
    183
    Par défaut utilisation nom de variable pour le nom d'une commandbars
    Bonjour le forum

    J'essaye d'utiliser le nom d'une variable (nom du classeur actif sans extention) pour l'attribuer au nom de la CommandBars, avec la procédure ci-dessous cà bug ???

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub CreationCB()
     
        Dim NameCeClasseur As String
        NameCeClasseur = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
        'MsgBox NameCeClasseur
     
        Dim CB As CommandBar    ' Concerne la barre d'outils
        Dim msoCCB As CommandBarComboBox   ' Concerne le controle ComboBox msoControlComboBox)
        Application.ScreenUpdating = False
        Set CB = Application.CommandBars.Add(NameCeClasseur, Position:=msoBarFloating, temporary:=True)
     
        With CB
            ' Attribuer la référence (msoCCB) à la ComboBox à créer
            Set msoCCB = CB.Controls.Add(msoControlComboBox, , , , True)
            With msoCCB
                .Width = 160
                .TooltipText = "C'est une ComboBox"
                .OnAction = "SelectComboBox"
                .Tag = "cbo1"
                .AddItem "Menu"
                .AddItem "Masquer les lignes"
                .AddItem "Afficher les lignes"
                .AddItem "Nouvelle ligne"
            End With
            .Visible = True
             With CB
                .Left = 1395
                .Top = 106
            End With
        End With
        Dim strTxt As String
        Set msoCCB = CommandBars(NameCeClasseur).FindControl(, , "cbo1")
        strTxt = msoCCB.Text
        msoCCB.Text = "Menu"
     
    End Sub
    Pourriez-vous m'expliquer svp si j'ai fait une erreur de syntaxe, merci d'avance

    Cordialement Modus57

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Elle fonctionne très bien ta procédure, pas de bug chez moi.

    Tu as une erreur sur quelle ligne et quel est le message d'erreur ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    790
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 790
    Points : 183
    Points
    183
    Par défaut
    Bonjour fring

    Erreur sur la ligne suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set CB = Application.CommandBars.Add(NameCeClasseur, Position:=msoBarFloating, temporary:=True)
    Message : Erreur d'exécution '5':
    Argument ou appel de procédure incorrect

    @ +

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    As-tu bien la référence Microsoft Office XX.0 Object Library de cocher dans le menu Outils/Référence (avec XX la version d'Excel).

    Elle est par défaut sous Excel contrairement à Access, mais peut-être a t-elle été décochée.

    Starec

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    790
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 790
    Points : 183
    Points
    183
    Par défaut
    Bonjour Starec

    La référence Microsoft Office 9.0 Object Library est cocher dans le menu Outils/Référence (avec la version d'Excel 2000).

    J'ai compléter mon message précédent

    Message : Erreur d'exécution '5':
    Argument ou appel de procédure incorrect
    @ +

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    A tout hazard...regarde dans ton menu

    Outils --> Personnaliser --> onglet Barres d'outils

    Si tu n'as pas déjà une barre de menu qui porte le nom de ton classeur, au cas où lors d'un test une barre aurait été crée mais non effacée.

    Si c'est le cas tu la sélectionne et tu la supprimes

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    790
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 790
    Points : 183
    Points
    183
    Par défaut
    Re fring

    J'ai regardé dans le menu

    Outils --> Personnaliser --> onglet Barres d'outils

    Une barre de menu qui porte le nom du classeur, a été crée mais non effacée, certainement lors d'un test.

    Je l'ai supprimé, et çà fonctionne.

    beaucoup à vous deux, sujet clos

    cordialement modus57

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utiliser un nom de variable pour un plot
    Par anthony78340 dans le forum MATLAB
    Réponses: 9
    Dernier message: 11/06/2014, 14h41
  2. [Débutant] utiliser variable pour le nom de colonne d'une procedure rowfilter
    Par Ashireon dans le forum VB.NET
    Réponses: 1
    Dernier message: 28/09/2012, 13h32
  3. Réponses: 1
    Dernier message: 30/05/2008, 11h51
  4. Réponses: 1
    Dernier message: 19/05/2008, 14h44
  5. Réponses: 9
    Dernier message: 25/02/2008, 11h40

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