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 :

appeler une macro sans devoir passer par "outils"->"macro"->"macro"


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut appeler une macro sans devoir passer par "outils"->"macro"->"macro"
    bonjour tout le monde,

    Comment puis-je appeler une macro sans être obligée de passer par:
    outils --> macro --> macro
    Autrement dit estce qu'il y a une possiblité d'avoir un boutton racourci ou même créer une box permettant d'executer tel macro

    Merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 288
    Par défaut
    salut

    si tu ajoute un bouton et que tu met le contenu de ta macro dans la "fonction boutton" ca devrait fonctionner..

    boutton : bare d'outils "formulaire". tu clique sur le bouton tu le crée.
    en doubleclicant dessus (ou alors clik droit /affecter macro/ nouvelle macro

    dans ta macro tu y met ce que tu veux!

    et qd tu click sur le bouton ca execute ce qu'il y a dans la macro!

    j'espere que je repond bien a la question

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    merci d'avoir repondu à ma question mais cela dit je sais pas comment ca focntionne on me demande toujours de faire une selection moi j'aimerais bien que ma macro s'execute sur n'importe quelle classeur sasn faire de selection

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 288
    Par défaut
    comment ca?
    je comprend pas bien...
    tu voudrais que ta macro soit utilisable sur plusieurs feuille d'un meme classeur? sur plusieurs classeurs differents?

    peux tu m'expliquer un peu plus... parceque je ne suis pas sur d'avoir bien compris la question en fait...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    en fait j'aimerais bien que ma macro soit utiliser dans n'importe qu'elle classeur je veux qu'elle apparaisse une fois que j'ouvre un nouveau classeur

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 288
    Par défaut
    hu hu...

    j'ai peur que ce ne soit un peu trop compliqué pour mon petit cerveau...

    il y a une possiblité de lancer une macro au demarrage je pense.
    mais je ne pas t'en dire plus...

    il faudrait demander aux experts (miami )

    desolee de ne pouvoir t'aider plus

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    ca fait rien merci qd meme d'avoir pris le tps de me répondre

  8. #8
    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,

    Pour que ta macro soit disponible dans un nouveau classeur, tu crées un classeur contenant la macro et tu l'enregistres au format MonModèlePerso.xlt.
    Ensuite tu pourras ouvrir un nouveau classeur contenant déjà la macro sur base du modèle xlt que tu viens de créer en faisant Fichier --> Nouveau --> et sélectionner MonModèlePerso

    Pour que ta macro s'exécute à l'ouverture de ce fichier, tu insères son nom dans l'évènement ThisWorkbook_Open
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    MaMacro
    End Sub

  9. #9
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    Il y a aussi les macros complémentaires XLA (AddIn) qui se chargent à l'ouverture d'Excel.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    bonjour,

    en fait pourles macro complementaire je sais pas tro m enservir enfin je voulais les faire mais ca marche pas pour moi surtout que j'ai pas qu'une seule macro j en ai plusieurs et elles sont dans des modules differents vous me conseillez quoi

    Merci d'avance

  11. #11
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    bonjour,

    peut-être en utilisant un "perso.xls"

    vois dans le fil suivant au chapitre V-B, c'est super bien explicité,
    penses aussi à la piste de Caféine, dans le même fil tu regardes à suivre au chapitre V-C.

    le limite du perso xls est bien définie, en attribuant tes macros à des combinaisons de touches, tu les auras sur tous tes classeurs...

    http://jeannot45.developpez.com/arti...alises/#LV-B-2

    cordialement,

    Didier

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    Bonjour;

    en fait ce que je cherche est que une fois qu'on ouvre un classeur Excel une petite box s'ouvre avec ou il y a une liste portant les nom de mes macros genre une ComboBox permettant d'afficher les noms de mes macros

    c'est faisable???



    Merci d'avance

  13. #13
    Expert confirmé

    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
    Par défaut
    bonsoir

    Oui c'est possible.

    Pour identifier l'ouverture des classeurs et lancer par exemple un userform qui listera des macros:
    Comment identifier automatiquement l'ouverture de nouveaux classeurs ?




    Pour lister dansun ComboBox les macros du module1 (de ThisWorkbook), lors du lancement du UserForm

    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
    Private Sub UserForm_Initialize()
        Dim Wb As Workbook
        Dim VBcomp As CodeModule
        Dim x As Long
     
        Set Wb = ThisWorkbook
        Set VBcomp = Wb.VBProject.VBComponents("Module1").CodeModule
     
        With VBcomp
              x = .CountOfDeclarationLines + 1
              Do Until x >= .CountOfLines
                  ComboBox1.AddItem .ProcOfLine(x, vbext_pk_Proc)
                  x = x + .ProcCountLines(.ProcOfLine(x, vbext_pk_Proc), vbext_pk_Proc)
              Loop
        End With
     
        ComboBox1.Style = fmStyleDropDownList
    End Sub


    Pour déclencher une macro en sélectionnant un nom dans le ComboBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_Change()
        If ComboBox1 <> "" Then Application.Run "Module1." & ComboBox1
    End Sub



    bonne soirée
    michel

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    bonjour tout le monde,
    Je suis débutante en VB et je sais même pas à quoi ser un userform je sais pas comment le manipuler donc j'ai pas pu integrer le dernier code qui m'a été fillé si quelqu'un peut me filler un cours je lui serais trop recnnaissante sachant que j'ai lu celui du site mais c'est tjrs vague pour moi

    Merci d'avane

  15. #15
    Membre confirmé
    Profil pro
    développeur VBA
    Inscrit en
    Août 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : développeur VBA

    Informations forums :
    Inscription : Août 2006
    Messages : 57
    Par défaut
    Tu peux créer un bouton
    Mettre le nom du chemin dans une cellule
    Celui du classeur dans une autre

    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
     
     
    Public Classeur, Chemin
     
    Private Sub Bouton_Click()
     
    Chemin = Cells(9, 7).Value  'Chemin ex :c:\mes documents\classeurs
    Classeur = Cells(11, 7).Value 'Nom du classeur ex: classeur.xls
     
    ChDir Chemin
    Workbooks.Open Filename:=Chemin & "\" & Classeur
     
    MaMacro
     
    End Sub

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    Rebonjour,

    Si j'ai bien compris dans chaque nouveau classeur je dois ecrire ce code pour qu'il me renvoie la macro d'un classeur déja existant?? si c'est le cas ca va jamais marché pour moi parce que moi je travaille déjà avec plusieurs Macro et dans mon classeur exemple j'ai plusiers feuilles et ce que j eveux faire c'est que mes macros fonctionnent aussi dans d'autres classeurs similaires , voili voilou

    @ plus

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 121
    Par défaut
    Bonsoir

    je me permets de te donner mon avis alors que je suis une débutante comme toi

    Pour créer "monmodeleperso.xlt comme te conseille fring, il faut que tu sauvegarde ton dossier avec toutes tes macros en faisant "enregistrer sous..." et choisir dans Type de fichier: Modèle et lui donner le nom que tu veux ( le mien je l'ai appelé Résumé)

    ensuite tu te créées ta barre d'outils perso en suivant ce lien:
    http://excel.developpez.com/faq/?pag...rreOutilsPerso et pour l'enrichir tu trouveras tes' faceid' là:
    http://fring.developpez.com/vba/excel/faceid/

    J'utilise ce dossier "résumé" dans un dossier avec plus de 100 fichiers et tous les jours j'en rajoute un de plus et je me sers de mes macros grâce à la barre perso qui se créé automatiquement à l'ouverture .

    Pour moi cela fonctionne très bien

    A+

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    merci pour ta reponse la Zèlie mais dis moi pour le Workbook est ce que je l'utilise comme une macro c'est à dire je purais le mettre jusste dans un modèle et l'exécuter comme j'éxecute une macro, je te pose cette question parce que j'essaie depuis tout à l'heure de voir ce que ce code va me donner sans succées

    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
     
    Private Sub Workbook_Open()
        Dim CmdBar As CommandBar
        Dim Bouton As CommandBarButton
     
        'Création de la barre d'outils nommée 'MaBarrePerso'
        Set CmdBar = Application.CommandBars _
            .Add(Name:="MaBarrePerso", Position:=msoBarTop, Temporary:=True)
     
        'Ajout de 2 boutons dans la barre d'outils
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
            'Définit "l'image" qui va s'afficher sur le bouton
            .FaceId = 133
            'Définit quelle macro est associée au bouton.
            'Cette macro sera lancée à chaque fois que vous cliquez sur le bouton.
            .OnAction = "Comparaison"
        End With
     
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
            .FaceId = 134
            .OnAction = "Passif"
        End With
     
     
        CmdBar.Visible = True
    End Sub
    Sachant que Pssif et Comparaison et deux macros que j'avais codé au paravant

    Voila si tu connais quoi que se soit repon moi STP parce que je bloke graaaave et encore une fois merci pour ta piste

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 121
    Par défaut
    Salut ririrourou

    alors je vais t'expliquer comment je fais et l'astuce je l'ai trouvé en lisant ou un post ou un tuto ( je ne sais plus )

    Ils ont des "perles" les "caïds" du VBA, " je te dis pas........"

    Ils te disent " ouvrir tous les classeurs"

    ma traduction: j'ouvre en premier mon classeur "résumé" puis je colle des données copiées sur un site, je les travailles avec mes macros de ma barre perso et je les sauvegarde sous " enregistrer sous...." avec un nouveau nom.


    OU j'ouvre en premier mon classeur "résumé" et j'ouvre un classeur déjà sauvegardé que je n'ai pas travaillé avec mes macros pour le travailler avec elles.

    Et normalement cela fonctionne c.a.d. que tes macro sont disponibles dans ta barre perso

    j'espère que j'ai été claire

    A+

    Pour compléter ma réponse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Private Sub Workbook_Open()
        Dim CmdBar As CommandBar
        Dim Bouton As CommandBarButton
    est dans thisworkbook

    et les macros sont dans des modules.

    Suis-je plus claire?

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    bonjour,

    justement mon porbleme est comment créer un workbook kon je veu inserer du code VBA me donne juste la possibilité de créer un module, une userfurm ou un module de classe que dois-je faire

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/08/2013, 13h59
  2. Réponses: 1
    Dernier message: 10/04/2012, 23h12
  3. Appeler une Activity sans passer par le menu
    Par jerem_orga dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 31/01/2012, 16h06
  4. [CR] Imprimer un état sans devoir passer par l'aperçu
    Par rolan dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 13/03/2007, 09h26
  5. Appeler une API sans liaison avec une DLL
    Par mat.M dans le forum x86 32-bits / 64-bits
    Réponses: 10
    Dernier message: 13/07/2004, 02h22

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