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 :

Probleme avec Evenement Application [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut Probleme avec Evenement Application
    Bonjour tout le monde,
    Quelqu ‘un aurait il la gentillesse de m’expliquer pourquoi mon code ne marche pas ? en fait je veux afficher un message a chaque ouverture de tout classeur Excel existant sur mon pc.(cad un classeur qui a ete deja enregistré).

    Dans un module de classe nommé ClassApp je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public WithEvents XL As Application
    Private Sub XL_WorkbookOpen(ByVal Wb As Excel.Workbook)
         MsgBox "Ouverture du classeur :  " & Wb.FullName
    End Sub

    Dans un module standard je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim X As New ClassApp
    Sub Init()
    	Set X.XL = Application
    End sub
    Dans le module de code de ThisWorkbook :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
     
        Call Init
    End Sub
    Merci de m’expliquer si j’ai oublié de rajouter quelque chose ou il y a quelque de trop.

    Cordiallement.

  2. #2
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    748
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 748
    Points : 1 339
    Points
    1 339
    Billets dans le blog
    1
    Par défaut
    Bonjour Bonero,

    ça me semble bien

    tu as bien fermé puis ouvert le classeur en question ?

    Sur XL2003, ça fonctionne bien chez moi

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut
    Bonjour Tototiti2008,
    merci pour ta reponse.
    Je ne sais pas a quoi ca sert de fermer et re-ouvrir le classeur qui contient mais ca marche a merveille.
    Peux tu m expliquer le raisonnement qu il y a derriere cette astuce?

    Merci d avance.

  4. #4
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    748
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 748
    Points : 1 339
    Points
    1 339
    Billets dans le blog
    1
    Par défaut
    Re,

    tes évènements au niveau application sont initialisés par ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
        
        Call Init
    End Sub
    Et ça ne se déclenche qu'à l'ouverture du classeur (Workbook_Open)...

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut
    salut tototiti2008,
    c'est encore moi. j'obtiens le bon resultat si le classeur qui contient les codes est ouvert. autrement il n y a rien qui se produit.je pensais que mes codes pouvaient fonctionner a l'ouverture de n importe quel classeur excel independemment du classeur excel qui est deja ouvert. peux tu m expliquer pourquoi ? merci d avance.

  6. #6
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    748
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 748
    Points : 1 339
    Points
    1 339
    Billets dans le blog
    1
    Par défaut
    Bonjour Bonero,

    Pour que tes macros soient toujours actives, il faut que le classeur en question soit toujours ouvert (seul le code des classeurs ouverts peut être exécuté)

    J'ai XL2003, je ne sais pas bien les différences qui arrivent avec 2007 pour la suite des explications...

    Si ce n'est que sur ton poste, tu peux mettre ce code dans le classeur de macros personnelles (Perso.xls) qui se crée quand tu enregistre une macro dans le classeur de macros personnelles.
    Ce classeur s'ouvre automatiquement avec Excel

    Si tu veux déployer ça sur plusieurs postes, le mieux est de créer une macro complémentaire (.xla) qu'il faudra activer sur les postes en question

  7. #7
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut
    bonjour,
    jai suivi tes conseils et mis mes codes dans le classeur Person.xls.
    et la, tout marche bien. grand merci.

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

Discussions similaires

  1. probleme avec une application client/serveur
    Par filsdugrand dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 28/02/2008, 20h10
  2. [Excel] Probleme avec Excel.Application
    Par Jack_serious dans le forum Général Dotnet
    Réponses: 9
    Dernier message: 12/01/2008, 17h31
  3. probleme avec une application voip
    Par cameleon8010 dans le forum C
    Réponses: 2
    Dernier message: 13/05/2007, 08h09
  4. [vba-access] probleme avec word.application
    Par realthunderbolt dans le forum Access
    Réponses: 3
    Dernier message: 23/08/2006, 19h02
  5. probleme avec evenements mouseover et mouseout - propriété
    Par polluxArgo dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 21/09/2005, 18h31

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