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

C++Builder Discussion :

Comment rendre une instance Excel unique


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 94
    Par défaut Comment rendre une instance Excel unique
    Bonjour,

    Je souhaiterai créer une instance Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Variant::CreateObject("Excel.Application")
    Jusque là pas de pb, sauf que quand j'ouvre d'autre fichier Excel sous Windows, ils s'ouvrent avec cette instance que j'ai créé dans mon appli, résultat des courses si je gèle l'interface d'Excel sous mon appli et qu'après on ouvre un fichier sous Windows, il est bloqué aussi...
    donc comment faire pour rendre mon objet Excel dans mon appli unique ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    sony351 a ecrit:
    Bonjour,

    Je souhaiterai créer une instance Excel
    Code :
    Variant::CreateObject("Excel.Application")Jusque là pas de pb, sauf que quand j'ouvre d'autre fichier Excel sous Windows, ils s'ouvrent avec cette instance que j'ai créé dans mon appli, résultat des courses si je gèle l'interface d'Excel sous mon appli et qu'après on ouvre un fichier sous Windows, il est bloqué aussi...
    donc comment faire pour rendre mon objet Excel dans mon appli unique ?

    Merci d'avance.
    Que veut tu dire par geler ton interface Excel?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 94
    Par défaut
    Alors en fait je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vMSExcel.OlePropertySet("Interactive", false);
    Mais le souci est que quand j'ouvre sous Windows un autre fichier Excel il s'ouvre par défaut avec la dernière instance lancé et du coup mon l'interface Excel est bloquée.
    Merci.

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    sony351 a ecrit:
    Alors en fait je fais un
    Code :
    vMSExcel.OlePropertySet("Interactive", false);Mais le souci est que quand j'ouvre sous Windows un autre fichier Excel il s'ouvre par défaut avec la dernière instance lancé et du coup mon l'interface Excel est bloquée.
    Merci.
    J'ai essaye et effectivement on est bloque.
    Voila ce que dit l'aide en ligne Excel.
    Interactive, propriété
    Voir aussiS'applique àExempleDétailsCette propriété a la valeur True si Microsoft Excel est en mode interactif. Cette propriété a généralement la valeur True. Si vous lui affectez la valeur False, Microsoft Excel empêchera toute interaction à partir du clavier et de la souris (à l'exception de la saisie dans les boîtes de dialogue affichées par votre code). L'utilisateur ne risque ainsi pas d'entraver l'exécution de la macro qui déplace ou active des objets Microsoft Excel. Type de données Boolean en lecture-écriture.

    Notes
    Cette propriété est utile si vous recourez à l'échange dynamique de données (DDE, Dynamic Data Exchange) ou à OLE Automation pour communiquer avec Microsoft Excel à partir d'une autre application.

    Si vous affectez la valeur False à cette propriété, n'oubliez pas de rétablir la valeur True. Microsoft Excel ne lui affectera pas automatiquement de nouveau la valeur True quand l'exécution de votre macro sera terminée.

    Exemple
    Cet exemple montre comment affecter la valeur False à la propriété Interactive pendant qu'elle utilise l'échange dynamique de données sous Windows, puis lui affecter de nouveau la valeur True une fois que l'échange est terminé. L'utilisateur ne risque ainsi pas d'entraver l'exécution de la macro.

    Application.Interactive = False
    Application.DisplayAlerts = False
    channelNumber = Application.DDEInitiate( _
    app:="WinWord", _
    topic:="C:\WINWORD\FORMLETR.DOC")
    Application.DDEExecute channelNumber, "[FILEPRINT]"
    Application.DDETerminate channelNumber
    Application.DisplayAlerts = True
    Application.Interactive = True
    Je pense que l'on ne peut retrouver le fonctionnement normal qu'apres avoir mis "Interactive" a True.

Discussions similaires

  1. Réponses: 9
    Dernier message: 20/09/2007, 12h55
  2. comment rendre une application multi instances ?
    Par Root_JDK dans le forum Delphi
    Réponses: 5
    Dernier message: 27/04/2007, 09h14
  3. Comment rendre une ligne de tableau en liens
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 11/09/2005, 23h14
  4. Comment rendre une form transparente à certains endroits ?
    Par ludo5532 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 21/08/2005, 15h28
  5. [ADO.NET] Comment rendre une certaine colonne "AutoIncrement" ?
    Par maitrebn dans le forum Accès aux données
    Réponses: 3
    Dernier message: 23/03/2005, 22h12

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