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 :

Macros lié à barre d'outils ne se lancent pas


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Macros lié à barre d'outils ne se lancent pas
    Bonjour a tous,

    Je suis en train de construire une barre d'outils (Toolbar) pour une application en cours de montage. Etat donné que c'est la premiere fois que je m'adonne à cet exercice, je me suis inpiré de divers codes trouvé dans des forums sur le net.

    En l'etat ou il est (voir piece ci jointe), la barre de tache nommé "Fiche mesuelle Toolbar" devrait fonctionner normalement mais le probléme est que lorque je clique sur le bouton et le toogle que j'y ai mis ceux ci n'interagisse pas avec les macros auxquelles elles sont liés.

    J'aimerais donc savoir pourquoi c'est le cas et comment y remedier.


    Enfin larsque je colle tut mon code sous ThisWorkBook du classeur 3 ci joint il me fait une erreur. A quoi cela est il du ?


    En attendant vos réponses recevez mes sincéres salutations

    Nb: pour acceder à la barre de tache Fiche mensuelle Toolbar, click droit sur la barre d'outil et selectionner dans la liste: Fiche mensuelle Toolbar
    Fichiers attachés Fichiers attachés

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 913
    Points
    55 913
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Il n'y a pas de barre personnalisée dans le classeur que tu mets à notre disposition. Probablement as-tu oublié de l'attacher via Outils/Personnaliser/Barres d'outils/Attacher...

    Cela étant, ton code étant dans le module de la feuille 1, il y a peu de chances que cela fonctionne...

    Déplace ton code dans un module standard (à créer car il n'y en a pas encore dans ton classeur) et la macro se lancera à l'ouverture de ton classeur.

    Il y a des chances que cela fonctionne mieux, mais je n'ai pas testé le code. Opère déjà les modifications qui s'imposent et reviens nous dire ce qu'il en est...

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    En l'etat ou il est (voir piece ci jointe), la barre de tache nommé "Fiche mesuelle Toolbar" devrait fonctionner normalement mais le probléme est que lorque je clique sur le bouton et le toogle que j'y ai mis ceux ci n'interagisse pas avec les macros auxquelles elles sont liés.

    N'utilise pas Auto_Open qui est dépassé (et mal utilisé dans ton classeur car positionné dans le module objet Feuil1).
    Utilise plutot Workbook_Open qui permet de déclencher des procédures automatiquement lors de l'ouverture du classeur



    Dans ton exemple, les procédures 'Button1' et 'menu_der' doivent être placés dans un module standard sinon ils ne sont pas reconnus lorsque tu cliques sur un bouton ou que tu sélectionnes un élémznt dans la liste.



    michel


    [EDIT] ... Bonjour Pierre ... ;o)

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 913
    Points
    55 913
    Billets dans le blog
    131
    Par défaut
    Bonjour Michel

    Je me permets de nuancer ton propos

    Citation Envoyé par SilkyRoad
    N'utilise pas Auto_Open qui est dépassé...
    Pour moi, Auto_Open n'est pas dépassé, car cette macro fonctionne légèrement différemment que la macro évènementielle Workbook_Open.

    En effet, l'évènement Open du classeur fonctionne toujours, quel que soit le mode d'ouverture du classeur.

    La macro Auto_Open est inopérante lors de l'ouverture du classeur via une procédure VBA d'un autre classeur (forcément...!), et ne fonctionne donc que lors de l'ouverture via Fichier/Ouvrir, ou double_clic dans l'explorateur ou... autre mode d'ouverture que via code VBA.

    Cette différence est intéressante à exploiter lorsque tu dois effectuer des mises à jour dans un classeur A via un classeur B, alors que le classeur A contient une macro à l'ouverture que tu souhaites désactiver lors de ta mise à jour par programme...

    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut suite ...
    Bonjoue à tous

    Bonjour

    Il n'y a pas de barre personnalisée dans le classeur que tu mets à notre disposition. Probablement as-tu oublié de l'attacher via Outils/Personnaliser/Barres d'outils/Attacher...

    Cela étant, ton code étant dans le module de la feuille 1, il y a peu de chances que cela fonctionne...

    Déplace ton code dans un module standard (à créer car il n'y en a pas encore dans ton classeur) et la macro se lancera à l'ouverture de ton classeur.
    effectivement pour ta premiere proccupation la barre personnalisé n'y etais pas; Dans le classeur 3 ci joint elle y est mais pas dans un module standard et la elle s'affiche mais n'appelle pas les macros.

    Quand je passe dans le classeur 3.1 dans le module stadard(this workbook), la le code me fait une erreur et je sais pas pourquoi

    en passant j'ai assayé le Wookbook_open et ca marche toujours pas

    merci d'avance de m'aider
    Fichiers attachés Fichiers attachés

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 913
    Points
    55 913
    Billets dans le blog
    131
    Par défaut
    Bonsoir

    Les macros Button1 et suivantes doivent obligatoirement se trouver dans un module standard pour pouvoir être appelées comme tu le fais. Donc, déplace le code de ces macros dans un module standard.

    Le problème que tu as dans le code Workbook_Open vient du fait que tu "joues" implicitement avec la collection des barres d'outils de l'objet Me qui correspond au classeur. Or, comme ce classeur est en train d'être ouvert, tu ne peux pas lui attribuer des barres d'outils. Tu dois donc modifier la ligne de création de la barre d'outils en ajoutant Application. devant Commandbars.Add, comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        ' Create the toolbar; PowerPoint will error if it already exists
        Set oToolbar = Application.CommandBars.Add(Name:=MyToolbar, _
            Position:=msoBarFloating, Temporary:=True)
    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut modification faites mais rien n'y fait
    Bonsoir,

    Merci déja de m'aider. La j'ai fais les modifications dont vous parlez dans le dernier post mais rien n'y fait

    Maintenant je n'ai plus l'erreur à la compilation en ayant le code de this workbook et j'ai la barre d'outils mais celle ci ne lance toujours pas les macros liées


    merci encore en attendant d'autres reponses
    Fichiers attachés Fichiers attachés

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour, Bon... je vois que tu n'a pas encore compris ce qu'est un module standard....
    Sélectionne dans les menus > Insertion>> Module
    Une nouvelle fenêtre est disponnible et dans le quel tu met tes macros.
    Et tu n'a pas encore modifié le code dans l'événement open comme le suggère Pierre Fauconnier, le classeur s'est planté dés l'ouverture.
    Je suppose que tu sait qu'il y a moyen de créer une barre d'outils directement dans l'environnement du classeur et de la lier au classeur.
    A+

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonsoir,

    Je reformule les conseils des précédents contributeurs que je salue au passage:

    - Dans le module du classeur Commandbars fait référence aux barres d'outils attachées au classeur, pour modifier les barres d'outils d'Excel il faut utiliser Application.Commandbars

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        Set oToolbar = Application.CommandBars.Add(Name:=MyToolbar, _
            Position:=msoBarFloating, Temporary:=True)
    - A l'ouverture du classeur toujours supprimer la barre d'outils pour pouvoir la recréer sereinement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        On Error Resume Next
        Application.CommandBars(MyToolbar).Delete
    - Petite erreur sur un indice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     Set mycontrol = Application.CommandBars("Fiche Mensuelle Toolbar").Controls _
         .Add(Type:=msoControlComboBox, Before:=1) '1 et non 2
    - Enfin la procédure associée à la liste doit etre placée dans un module standard (Sous VBE: Insertion>Module) sans quoi elle est invisible (ce que tu peux constater en faisant alt+F8) et donc ne peut etre lancé par un bouton.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub menu_der()
        MsgBox Application.CommandBars.ActionControl.Text
    End Sub
    Cordialement,

    Tirex28/
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Barre d'outil ne s'affiche pas sur IE9
    Par kintha dans le forum IGN API Géoportail
    Réponses: 4
    Dernier message: 19/01/2015, 10h46
  2. [XL-2007] Copier Macros dans Barre d'Outils
    Par pasterlouis dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/07/2013, 11h59
  3. Barre d'outil personnalisée par macro
    Par cati_78 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2009, 05h06
  4. Réponses: 3
    Dernier message: 08/02/2009, 22h41
  5. [CKEditor] Configuration : la barre d'outils "Basic2" n'existe pas
    Par ebadmail dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 02/01/2007, 09h51

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