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 :

affectation d'une macro dans un menu


Sujet :

Macros et VBA Excel

  1. #1
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut affectation d'une macro dans un menu
    Bonjour à tous

    Mon problème n'est pas directement sur le code VBA qui fonctionne mais sur l'affectation de ma macro dans un menu.

    J'explique

    J'ai créer une macro de sauvegarde dont voici le code épurer
    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
    Sub Sauvegarde()
        Dim an, mois, jours As Integer
        Dim fichier As String
     
        an = Year(Date)
        mois = Month(Date)
        If mois < 10 Then mois = "0" & mois
        jours = Day(Date)
        If jours < 10 Then jours = "0" & jours
     
        fichier = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
        fichier = "c:\" & fichier & "_" & an & "_" & mois & "_" & jours & ".xls"
     
        ActiveWorkbook.SaveAs Filename:= _
            fichier, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
     
        Application.Quit    
     
    End Sub
    Jusque là pas de problème et cla marche

    2ème étape je cré manulement une barre d'outils avec un bouton Sauvegarde dedans et je lui affecte la macro sauvegarde. Et toujours pas de problème
    J'execute la macro cela marche

    Et lorsque je veux executer encore une fois le bouton auquel j'ai affecté la macro Sauvegarde il me demande d'ouvrir la macro du fichier Essai_31_07_2008.xls

    Et là je sèche

    Comment a-t-il pu changer l'affectation de la macro avec un autre fichier

    Du coup je me suis dit je vais faire ce que je fais manulement en macro automatique, et là, seconde surprise j'ai pas de code!

    Donc ma demande est la suivante : Comment puis-je avoir un bouton qui reste lié au fichier initial

    Merci d'avance

    Pour toute aide voici mon fichier

    PS j'ai penser bien évidemment de faire un bouton dans une feuille mais l'utilisatrice qui cré des feuilles veut l'avoir sous les yeux pour penser a faire une sauvegarde ailleurs
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    La façon de faire la plus courante c'est d'ajouter un menu ou une option de menu à l'ouverture du fichier xls et d'effacer ce menu à la fermeture du fichier xls.

    Je n'ai pas le code sous la main, mais il doit y avoir quelque chose dans les tutoriels, la FAQ Excel ou la FAQ VBA.

    Si tu ne trouves pas, tu dis. Je devrais avoir quelque chose dans mes vieilles notes de cours.

  3. #3
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour

    Ca fait longtemps que j'ai laissé tomber ce system de bouton dans la barre de menu pour des fichiers non autonome comme le tient

    Voila ce qui ce passe :
    1 - tu ouvres un fichier X, ce fichier te crée une barre de menu "carine", dans cette barre, tu as un bouton pour faire une sauvegarde
    2 - Ta macro de sauvegarde, ne fait pas une sauvegarde simple, mais sauvegarde sous un autre nom, donc change le nom de ton fichier
    3 - Ton bouton n'etant pas cree par ce nouveau fichier, il reste lié au precedent et cherche sa macro dans le precedent fichier

    Il doit y avoir une option pour Lier ou Attacher un menu au fichier, mais je ne sais plus comment ca marche, ayant laissé tombé ce type de programmation

  4. #4
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour à tous
    Merci de vos réponse

    - Réponse à wilfried_42
    Oui, je sais que c'est un peu galère mais bon je vais tenter de faire ce que Zazaraigné m'a dit

    - Réponse à zazaraigné
    Dans la FAQ je pense avoir trouvé mon bonheur
    Dès que j'ai fini je reviendrais

    Merci

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

    Informations professionnelles :
    Activité : Engineering

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

    Si ça peut t'aider --> Création d'une barre de menus personnalisée

  6. #6
    Membre confirmé
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Par défaut
    Salut tt le monde et Igloobel,

    As tu essayé d'enregistrer ta macro dans le classeur de macro personnelle ?
    Comme ça tu peux affecter ta macro à un bouton des barres d'outils et là elle sera toujours disponible quel que soit le fichier ouvert.

  7. #7
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mumu64
    As tu essayé d'enregistrer ta macro dans le classeur de macro personnelle ?
    Excelente remarque

    EH Ben non je n'y avait pas pensé

    Mais je ne vais pas laisser passer l'occasion de m'améliorer en Pgm VBA
    merci

    Réponse à Fring :
    Je vais étudier ton document qui semble bien répondre à ma demande, je pense donc pouvoir m'en sortir.

    Dès que mon pgm Marche je le poste et met résolu, si j'ai des pbl je reviendrais avant bien sûr!

    Merci à tous

    a bientôt

  8. #8
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour à tous

    J'ai regardé avec attention le document de Fring qui décrit command vréer sa propre barre d'outils.

    J'ai fait comme c'est décrit (enfin je crois...) et un message d'erreur apparait :
    Erreur d'execution 91 variable objet ou variable bloc with non définie.
    Et voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Workbook_Open()
        Dim cbar As CommandBar
        Set cbar = CommandBars.Add("Toto", msoBarFloating, False, True)
        cbar.Visible = True
     
    End Sub
    Merci de m'expliquer ce qui ne va pas

    PS : je programme sous Excel 2003

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

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par Igloobel Voir le message
    J'ai fait comme c'est décrit (enfin je crois...)
    Et bin non...ce n'est pas comme ça que c'est décrit, la procédure de création de la barre de menu est placée dans un module, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub creation_cbar()
        Dim cbar As CommandBar
        Set cbar = CommandBars.Add("Toto", msoBarFloating, False, True)
        cbar.Visible = True
    End Sub
    et on appelle cette procédure à l'ouverture du classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
        creation_cbar
    End Sub

  10. #10
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Merci fring
    Effectivement cela marche mieux

    Ceci dit j'ai un problème avec la création des buttons

    Quand je déclare un type msoButtonIcon cela marche

    mais pour le msoButtonCaption ou le msoButtonIconAndCaption j'ai une erreur de type 13

    je joins mon fichier

    Quelque chose à du m'echapper et je ne vois pas quoi

    merci de votre aide avisée

    Igloobel
    Fichiers attachés Fichiers attachés

  11. #11
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Je retire ce que je viens de poster



    le code correct c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set Ctrl_2 = CommandBars("Carine").Controls.Add(msoControlButton)
     
        With Ctrl_2
            .Style = msoButtonIconAndCaption
            .Caption = "Sauvegarde sur F:"
            .OnAction = "Sauvegarde"
            .FaceId = 749
        End With
    Je finis mon exo et je poste ma solution

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/11/2005, 22h11
  2. [MySQL] Résultat d'une requette dans un menu en liste
    Par Mimisator dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/10/2005, 20h55
  3. fixer une valeur dans un menu deroulant
    Par donny dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/05/2005, 09h51
  4. creation d'une raccourcie dans le menu demarre
    Par kenshi dans le forum MFC
    Réponses: 14
    Dernier message: 11/09/2003, 14h59

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