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 :

[E-03 et E-07] macro demarre depuis mauvais workbook


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut [E-03 et E-07] macro demarre depuis mauvais workbook
    Salut a tous.

    Je suis sur que j'ai un probleme tres connu! ;-)
    2 workbooks avec macro et execution controlee avec des OnEntry et Onkey chargees avec workbook_open, similaire l'un de l'autre, chacun marche tres bien de son coté.

    Si j'en ouvre un, puis le 2eme que je refermes, quand je lance une macro dans le premier, le 2eme est re-ouvert et la macro appelee dans le second et retourne une erreur dans le premier (normal vu que le traitement dans les 2 est different)

    J'ai essayé:
    -deplacer les functions entre sheet et modules.
    -ajouter des private
    -specifier thisworkbook sur tous les range et worksheets ou sheets...

    rien n'y fait.

    Comment régler ce léger probleme?
    Y a-t-il une commande pour purger, rafraichir,..?
    Je sèche....

    Merci d'avance.
    oups j'allais oublié: version d'Excel 2003 ou 2007... meme chose...

    Si ce probleme n'est pas si commun comme je le pense, je donnerai alors des precisions si necessaire.
    Beaucoup de temps passé a chercher la solution sur Google, mais beaucoup de lien explique comment lancer un macro depuis un autre workbook.... pas comment s'en passer quand ca se produit.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour et bienvenue sur le forum Office de DVP.

    Il serait bon que tu nous donne le code qui génère cette erreur, car sans cela il sera dut aux membres de t'aider.

    Philippe

  3. #3
    Membre émérite

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

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

    OnEntry peut etre remplacé par la procédure Worksheet_Change. Quand à OnKey il suffit d'attribuer un raccouci clavier à tes procédures via la boite de dialogue Macros>Options.

    Cordialement,

    Tirex28/

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut
    Oui mais comme je n'ai aucune idée de quelle partie du code génère le problème... (hier)

    (aujourd'hui ;-):
    Bon, du coup j'ai cherché et identifié la source de mon probleme.
    Les 2 workbooks utilisent des application.onEntry et application.Onkey pour lancement de macro en cas de changement de cellule dans un nombre variable de feuilles. En fait le dernier chargé prend le dessus.

    Supprimer les attributions des Onkey et onEntry a la sortie ne convenait pas puisque ca les desactivait aussi pour celui qui restait ouvert.

    J'ai vu ensuite qu'on pouvait preciser le nom du workbook dans les macros associé aux onEntry et onKey. Mais ca ne resolvait rien.

    J'avais réussi a limiter le onEntry avec un "each sh in thisworkbook.sheets", mais ca ne marchait pas pour le onKey...

    En fait j'ai fini par trouvé:
    dans le workbook_open, j'attribue les onkey et onentry.
    dans le beforeclose je les vide.
    Et pour qu'ils soient de nouveaux actifs dans le workbook voulu, je les attribue a nouveau dans le workbook_activate.
    Et pour parfaire, je les désactive dans le workbook_deactivate, de facon a ce qu'ils ne soient plus attribués dans tout autre workbook ouvert.

    Voila.

    tirex28: Merci pour ta réponse mais, worksheet_change oblige a rentrer le code dans chaque feuille et le nombre de feuille est variable et peut etre amener a changer. Donc le OnEntry permet de ne pas tenir compte du nombre de feuilles.

  5. #5
    Membre émérite

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Re,

    worksheet_change oblige a rentrer le code dans chaque feuille et le nombre de feuille est variable et peut etre amener a changer. Donc le OnEntry permet de ne pas tenir compte du nombre de feuilles.
    Tu peux utiliser cet évènement au niveau du classeur, et ainsi n'écrire qu'une procedure pour toutes les feuilles quelque soit leur nombre. OnEntry n'est présent que pour la compatibilité avec les versions antérieures, quand cette fonction ne sera plus supporté tu devras reprendre ton code.

    Cordialement,

    Tirex28/

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut worksheet_change pour le classeur
    J'ai essaye suivant ton conseil.
    worksheet_change n'est pas dispo dans le classeur.
    J'ai donc generer le code de la fonction dans une feuille.
    J'ai deplace le code de la fonction worksheet_change dans le code du classeur, mais a l'execution (apres sauvegarde) rien ne se passe.

    un break sur la fonction worksheet_change du classeur, le code ne s'arrete jamais.

    Comment proceder pour activer le worksheet_change sur un classeur entier?

    Merci.

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

Discussions similaires

  1. lancer une macro excel depuis une appli access
    Par LostIN dans le forum Access
    Réponses: 1
    Dernier message: 22/08/2006, 11h10
  2. Executer une macro Word depuis VB 6.0
    Par benos59 dans le forum VBA Word
    Réponses: 1
    Dernier message: 10/08/2006, 17h37
  3. Lancer une macro Excel depuis Access
    Par pascal913 dans le forum Access
    Réponses: 12
    Dernier message: 31/07/2006, 15h31
  4. Lancer une macro Excel depuis Access
    Par marcobosio dans le forum Access
    Réponses: 6
    Dernier message: 05/06/2006, 20h51
  5. [VBA-E] Appel macro Access depuis Excel en mode silencieux
    Par lordkoko dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2006, 10h12

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