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 :

Message de XL indésirable


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
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Par défaut Message de XL indésirable
    Bonjour,

    En VBA XL, je lance un traitement sur une autre application... à quelques chose prés comme ceci :
    Dim MyApp As TerribleApplication
    Set MyApp = CreateObject("TerribleApplication.Application")
    Plus loin j'instancie un type d'objet bien reconnu par cette application et je lui lance un traitement de génétation de site Web que l'application gère bien:
    anTerribleApplicationOject.GenerateWebSite

    Jusque la tout va bien...

    En revanche TerribleApplication met un peut de temps pour la génération du Site et XL fait apparaitre une fenètre avec le message "Microsoft XL attend la fin de l'action OLE d'une autre application" avec un bouton OK blocant la suite de l'éxécussion du script VB.

    Cela ne va pas du tout car j'aimerais lancer ce traitement la nuit, donc en ne faisant intervenir aucune action utilisateur

    Biensure j'ai essayé le Application.DisplayAlerts = True, mais cela ne marche pas.

    Avez vous une idée pour résoudre cela ? Parce que là !!!

    Alexandre

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je pense que tu vas devoir modifier la base de registre. Un exemple pour un message intempestif, réponse de comeochris, dernier post (ne correspond pas à ton cas mais si ça peut t'orienter...)
    http://www.developpez.net/forums/sho...Y_CURRENT_USER
    A toutes fins utiles

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Par défaut
    Modifier la base de registre !!! ai ai ai , c'est pas donné cela puisque cela se déroule sous CITRIX, arggg

    sinon, il y a peutetre un truc à faire sur OLE, récupérer ou paramétrer cela via un gestionnaire OLE ? mais je ne vois pas du tout ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Par défaut
    OK, j'ai trouvé !!!!
    ici

    Cela fonctionne sur le principe d'interception des messages OLE

    en entete de module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Declare Function CoRegisterMessageFilter Lib "OLE32.DLL" _
            (ByVal lFilterIn As Long, ByRef lPreviousFilter) As Long
    puis pour appeler le traitement

    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
    Sub KillMessageFilter()
        '...
        Dim lMsgFilter As Long
        '...
     
        ' On encadre la fonction d'appel de traitement externe par le filtre des message OLE...
        CoRegisterMessageFilter 0&, lMsgFilter
    
        ' Appel du traitement
        'par exemple : anTerribleApplicationOject.GenerateWebSite
    
        ' ...et on restore le filtre des messages après l'appelle de traitement
        CoRegisterMessageFilter lMsgFilter, lMsgFilter
    
    End Sub
    OUF, merci au web online

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si j'ai bien compris, c'est la base de registre de l'utilisateur qui est à modifier... Sauf, peut-être si les deux applis sont en réseau
    Je ne suis pas assez calé pour t'aider plus, désolé
    Bonne chance dans tes recherches et si tu trouves, n'hésite pas à mettre ta solution sur le forum

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

Discussions similaires

  1. Message indésirable sur mon livre d'or
    Par emmy99 dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2008, 19h00
  2. [BCB5] Message indésirable en debuggage
    Par Yoh dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/12/2007, 13h35
  3. [MySQL] message erreur indésirable sur requete mySQL
    Par kuja2053 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 26/07/2007, 02h42
  4. Messages indésirables formulaire
    Par gcaed dans le forum Langage
    Réponses: 8
    Dernier message: 10/07/2007, 11h29
  5. Bloquer les messages indésirables
    Par wodel dans le forum Langage
    Réponses: 3
    Dernier message: 15/10/2006, 14h26

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