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 :

[VBA-E]erreur sur création d'une barre de menu


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 32
    Points
    32
    Par défaut [VBA-E]erreur sur création d'une barre de menu
    bonjour,

    à chaque ouverture d'un fichier une nouvelle barre de menu est créé.
    Or il arrive que lors de l'exécution du code il bloque sur l'instruction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set newArbre = Application.CommandBars.Add("Arbre", msoBarTop, True, False)
    il m'indique : erreur execution '5' : Argument ou appel de procédure incorrect.

    j'ai donc essayer de remplacer application par workbooks("blablabla").comm...
    , mais aussi en ne mettant rien.

    je pense mais je n'en suis pas sûre qu'il attend un numéro d'index pour commandbars. Or je ne peux pas en mettre car je créer une nouvelle barre de menu.

    je me demandais : Est-ce que comme pour l’ADO il faut cocher une option spéciale dans le menu Outils puis Références ?
    ou alors faut il que je déclare une variable en object et qu'ensuite
    set mavariable = createobject("commandbar et quelque chose")
    with mavariable
    etc


    Si cela viens du code, dites le moi ou s’il faut cocher quelque chose

    merci

    PS : le pire c'est que ce code fonctionne de temps en temps mais pas tout le temps or je veux qu'il fonctionne tout le temps

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Points : 451
    Points
    451
    Par défaut
    Citation Envoyé par roseau
    Or il arrive que lors de l'exécution du code il bloque sur l'instruction.
    Ca veut dire que parfois ca fonctionne et parfois non?
    En fait si ta barre existe déjà, ca ne doit pas fonctionner, car il ne peut re-créer une 2e barre avec le meme nom.
    As-tu reellement besoin de créer la barre dynamiquement? Sinon tu n'as qu'a créer la barre manuellement et l'attacher à ce fichier Excel en particulier. Elle apparaitra alors a chaque ouverture du fichier.

    Au pire avant de la créer (Add), tu contrôles qu'elle n'existe pas...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 32
    Points
    32
    Par défaut
    oui, mais même quand je fais le contrôle cela bloque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Application.CommandBars("Arbre") Is Nothing Then
    il me met la même erreur qu'avant (erreur d'execution '5')

    et j'ai absolument besoin que la barre soit en dynamique

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 32
    Points
    32
    Par défaut
    finalement j'ai réussi à résoudre le pb

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each mabar In CommandBars
        Debug.Print mabar.Name 'pas obligatoire juste une aide en débug
       If mabar.Name = "Arbre" Then mabar.Delete
    Next

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Points : 451
    Points
    451
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    existCmdBar = False
        For Each cb In Application.CommandBars
            If cb.Name = "Arbre" Then
                existCmdBar = True
                Exit For
            End If
        Next cb
        If existCmdBar = False Then
             ' creation de la barre
        End If

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

Discussions similaires

  1. Erreur sur création d'une clé primaire
    Par Just-Soft dans le forum SQL
    Réponses: 6
    Dernier message: 09/08/2011, 10h32
  2. Réponses: 1
    Dernier message: 09/10/2010, 11h37
  3. Erreur sur création d'une fonction
    Par mister3957 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 30/04/2010, 16h10
  4. Aide sur création d'une grille de menu
    Par AAWOOPY56 dans le forum AIX
    Réponses: 2
    Dernier message: 21/01/2010, 12h20
  5. Erreur sur création d'une vue
    Par CinePhil dans le forum Débuter
    Réponses: 2
    Dernier message: 18/10/2009, 00h06

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