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 :

[Excel] Passer au premier plan pour l'affichage d'une boite de dialogue [FAQ]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 13
    Points
    13
    Par défaut [Excel] Passer au premier plan pour l'affichage d'une boite de dialogue
    J'ai un problème qui est assez genant.

    A partir de mon application je lance une instance d'Excel. Ensuite j'ouvre la boite de dialogue d'Excel pour ouvrir un fichier. Le problème est que cette boite de dialogue reste au second plan. Je suis donc obligé de faire ALT+TAB afin de sélectionner la boite de dialogue.

    Quelqu'un n'aurai pas une solution à me proposer???

    Par avance merci.

  2. #2
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 18
    Points
    18
    Par défaut
    Pourquoi n'utilise tu pas le "vFileName" pour spécifier le nom du fichier a ouvrir?

  3. #3
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    salut, j'utilise le vFileName comme scorpion37 te l'indique ca revient au meme et ca resoud ton pb

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Je comprends pas où vous voulez en venir!!!

    J'ouvre la boite de dialogue d'Excel afni de récupérer un fichier, car je ne connais ni son nom, ni son emplacement.

    Voila ce que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    vMSExcel = Variant::CreateObject("Excel.Application");
    vMSExcel.OlePropertySet("Interactive", false);
    ExcelApplication1->Connect();
     
    vTitle = StringToOleStr("Ouvrir un fichier");
    vMultiselect=false;
    vReadOnly=true;
     
    vFileName = ExcelApplication1->GetOpenFilename(EmptyParam, EmptyParam, vTitle, EmptyParam, vMultiselect, 0);
     
    vXLWorkbooks = vMSExcelLogiciel.OlePropertyGet("Workbooks");
    vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName, Unassigned, vReadOnly);
    Et là ma boite de dialogue s'ouvre mais reste au second plan ce qui m'oblige à chaque fois à appuyé sur ALT+TAB.
    Mais si j'ouvre la boite de dialogue une seconde fois alors elle se met au premier plan.

    Donc voila...

  5. #5
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    en fait tu ouvre un opendialog, tu recupere le nom du fichier et apres seulemen tu ouvre excel
    voila le code que j'utilise
    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
    16
    17
    18
    19
    20
    21
    22
    23
     //Pour ne voir que les fichiers cvs et xls
      OpenDialog1->Filter = "Fichiers excel (*.XLS) (*.xls)|*.xls|Fichiers CSV (*.CSV) (*.csv)|*.csv"; //|Tous les fichiers (*.*)|*.*");
      // si clic sur ouvrir
      if (OpenDialog1->Execute()){
        ///////////////// code ///////////////////
        Variant vMSExcel , vNotUsed, vSeparator, vXLWorkbooks, vXLWorkbook;
        String vFileName, chemin_macro;
        AnsiString Extension = ExtractFileExt(fichier_ouvrir).LowerCase();
        //  ShowMessage(Extension);
        // si c'est un fichier csv ou xls on traite sinon c'est un repertoire et on ne fait rien
        if (Extension==".csv" || Extension==".xls" ){
          // on ouvre une instance excel
          vMSExcel = Variant::CreateObject("Excel.Application");
          //vMSExcel.OlePropertySet("Visible", false); // on cache excel
          vMSExcel.OlePropertySet("DisplayFullScreen", true);
          vMSExcel.OlePropertySet("DisplayAlerts", false);
          // on donne a vFileName le nom du fichier a ouvrir
          vFileName = fichier_ouvrir;
          vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
          vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName.c_str());//, vNotUsed, vNotUsed,vSeparator);
          // access a la feuille
          Variant vWorksheet;
          Variant vWsPos = 1;  // position de la feuille a utiliser

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut
    J'ai pas encore approché excel en programmation, mais uil n'y aurait pas un truc de enr TaBoiteDeDialogueExcel->Show();

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    En faite, je n'utilise pas une biote de dialogue de builder, j'utilise celle intégrée à Excel

    Excel s'ouvre en premier grace à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vMSExcel = Variant::CreateObject("Excel.Application");
    C'est à cette ligne que la boite de dialogue est ouverte, mais elle n'apparait qu'au second plan
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vFileName = ExcelApplication1->GetOpenFilename(EmptyParam, EmptyParam, vTitle, EmptyParam, vMultiselect, 0);

Discussions similaires

  1. Affichage d'une boite de dialogue
    Par Gabout dans le forum VBA Access
    Réponses: 6
    Dernier message: 24/04/2007, 19h25
  2. Réponses: 4
    Dernier message: 21/07/2006, 11h00
  3. Condition pour l'affichage d'une boite de message
    Par Virgile59 dans le forum Access
    Réponses: 19
    Dernier message: 05/10/2005, 14h22
  4. Réponses: 2
    Dernier message: 01/05/2004, 12h19
  5. Affichage d'une boite de dialogue nonmodale avec MFC
    Par the.cable.guy dans le forum Windows
    Réponses: 3
    Dernier message: 04/07/2003, 17h59

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