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

Access Discussion :

Comment invoquer une macro convertie en VBA


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 34
    Points
    34
    Par défaut Comment invoquer une macro convertie en VBA
    Bonjour,
    Ma question est sans doute basique mais néanmoins; je n'ai pas la réponse car j'utilise la version 2010 depuis peu et je suis un peu perdu par rapport à la version 2003.
    Donc pour résumer: utilisant une base conçue à l'origine dans access 2003, j'ai converti une macro en VBA pour la modifier. Maintenant, je ne sais pas comment appeler cette version modifiée depuis mon formulaire? Je pensais tout bêtement que supprimer l'ancienne macro et renommant la macro convertie avec l'ancien nom, ça marcherait, mais que nenni, c'est pas aussi simple.
    Pouvez-vous m'aider ?
    merci d'avance

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Points : 265
    Points
    265
    Par défaut
    Hello
    Pour toute invocation, je pense que tu devrais plutôt faire appel à un mage !


    Sinon pour répondre à ta question, cela dépend sous quelle action tu veux lancer ta macro (bouton, modification d’un champ, ouverture du fichier…)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Nodens_swiss Voir le message
    Sinon pour répondre à ta question, cela dépend sous quelle action tu veux lancer ta macro (bouton, modification d’un champ, ouverture du fichier…)
    Bonjour,
    La macro est invoquée (si, si j'insiste sur le verbe ......) à partir d'un bouton de commande dans un formulaire.

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Points : 265
    Points
    265
    Par défaut
    Dans ce cas-là, le plus simple est de copier le contenu de la macro dans l’action « click » de ce bouton ou de dans cette action de faire un « call MaMacro »

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Nodens_swiss Voir le message
    Dans ce cas-là, le plus simple est de copier le contenu de la macro dans l’action « click » de ce bouton ou de dans cette action de faire un « call MaMacro »
    Je préfèrerais conserver la macro indépendante et l'appeler sur l'évênement "sur clic" de mon bouton mais ça me répond que la macro n'existe pas.
    Je rappelle que je l'ai renommée après conversion en VBA et modif et qu'elle a donc le même nom que la macro d'origine.
    Donc l'appel d'un macro classique ne se fait pas de la même façon qu'une macro convertie VBA.

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Points : 265
    Points
    265
    Par défaut
    Se trouve-t-elle dans un module ?
    Si oui, il faut la lancer avec :

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Nodens_swiss Voir le message
    Se trouve-t-elle dans un module ?
    Si oui, il faut la lancer avec :
    En réalité la conversion en VBA l'a transformée en module, ce n'est plus une macro !
    Donc, comment l'appeler par l'évènement "sur clic" du bouton sans la transformer en proc évènementielle ?

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Points : 265
    Points
    265
    Par défaut
    Dans un module c'est toujours une macro.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub MonBouton_Click()
    Call MonModule.MonSub
    End Sub

    Attention, la macro dans ton module doit être déclare en « Public »

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Ca me répond "objet requis !

    voici le début de ma macro convertie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Option Compare Database
    Private Sub cmdPrint_Click()
    On Error GoTo cmdPrint_Click_Err
        If (1 = Forms!FPrintOptions!optPrint) Then


    PS: on est vraiment loin de la version 2003......mais c'est sans doute mieux pour ceux qui débutent en V2010.

  10. #10
    Membre actif
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Points : 265
    Points
    265
    Par défaut
    Attention, la macro dans ton module doit être déclare en « Public »

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Nodens_swiss Voir le message
    Attention, la macro dans ton module doit être déclare en « Public »
    J'ai beau coder ma macro convertie en PUBLIC, rien à faire, j'ai toujours le message "objet requis" !

  12. #12
    Membre actif
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Points : 265
    Points
    265
    Par défaut
    Si tu mets ton curseur dans le code de ta macro et que tu la lances (Touche « F5 »), est-ce-que ton code fonctionne ?

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Non, il ne trouve pas le formulaire FPrintOptions !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Option Compare Database
    Public Sub cmdPrint_Click()
    On Error GoTo cmdPrint_Click_Err
        If (1 = Forms!FPrintOptions!optPrint) Then
    Je crois que je vais revenir à la méthode classique: appel de la macro directement, je vais me faire à l'éditeur de macros !
    merci pour ton aide.

  14. #14
    Membre actif
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Points : 265
    Points
    265
    Par défaut
    Donc ton problème ne vient pas de « l’invocation » de ta macro mais de la macro elle-même.

    Je te conseille de clôturer cette discussion et d’en ouvrir une autre où tu expliques le but de ta macro, la structure de tes tables, tes requêtes…

    Quand tu auras réussi, tu pourras sans problème l’affecter à un bouton.

    PS : Vérifie que tes formulaires et les contrôles s’y trouvant (comme optPrint) ont exactement le même nom que ceux utilisé dans ta macro.
    En tous cas, la manière que tu utilises pour atteindre un contrôle sur un formulaire semble bonne (Forms!FPrintOptions!optPrint)
    Selon le lien suivant :
    http://access.developpez.com/faq/?pa...#AtteindreCtrl

    Dans le doute, essaye tout de même : FPrintOptions.optPrint.value

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    OK, je clos et je reviens dans ce forum si je ne m'en sors pas.
    Merci en tout cas pour ta patience et ta disponibilité.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/10/2014, 16h28
  2. [XL-2007] Comment appeler une macro depuis un ruban perso
    Par tgv77 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/11/2009, 17h08
  3. Réponses: 12
    Dernier message: 01/03/2007, 11h07
  4. [VBA-E] Comment appliquer une macro sur plusieurs cellules
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 25/01/2007, 10h54
  5. [VBA-E] comment realiser une macro "passive"
    Par Marc dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/06/2006, 08h20

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