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

 Delphi Discussion :

delai ouverture fichier excel


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Par défaut delai ouverture fichier excel
    mon programme ouvre un fichier excel qui est lui même en relation par lien OLE avec un autre programme.
    puis je copie la colonne A dans le presse papier.
    le délai d'ouverture d'excel étant plus ou moins long, j'ai essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    vXLWorkbooks := vMSExcel.workbooks;
            vXLWorkbook := vXLWorkbooks.Open('C:\monfichier.xls',vlink,vreadonly);
            sleep(1000); //laisse le temps de s'ouvrir
            try
                     vXLWorkbook.Worksheets[1].Range['A:A'].copy;     
            except
                     on Error: EOLEsyserror do             
            showmessage('rate');
            end;
    mais ça ne m'évite pas un plantage
    comment faire pour ne tenter la copie de la colonne que lorsqu'elle est accessible?
    merci pour votre aide
    Jean Pierre

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Par défaut
    pas de réponse... mon problème est peut etre insoluble ?
    ou alors y a t il un moyen détourné de connaitre le nombre de fenetre ouvertes dans microsoft office sans passer par le test dans excel?
    mais je ne connais pas.

  3. #3
    rsc
    rsc est déconnecté
    Membre émérite
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Par défaut
    Puisque personne n'a d'idée, je peux t'en donner une générique : c'est de mettre ton try dans une boucle while :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Flag := False;
    while not Flag do
      try
        Application.ProcessMessages;
        vXLWorkbook.Worksheets[1].Range['A:A'].copy; 
        Flag := True;
      except
      end;
    end;
    Le Flag ne passant à True que si ton traitement a réussi, et le Application.ProcessMessages;
    étant là pour te permettre de prévoir de forcer ton Flag à True si tu veux sortir "en force" en cas de traitement trop long.
    Tu peux effectivement insérer un Sleep si tu veux ralentir ta boucle.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Par défaut
    merci pour cette réponse, mais ça ne peut pas fonctionner
    toute tentative de "copy" trop précoce se soldera par le message d'erreur et le plantage de l'application.
    l'utilisation du sleep est délicate car le temps d'accès varie enormément et je serais obligé de prendre une marge de sécurité trop importante

  5. #5
    rsc
    rsc est déconnecté
    Membre émérite
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Par défaut
    Tu veux dire que le try n'intercepte pas l'erreur ?? Et donc que l'exécution s'arrête après erreur et ne passe pas dans le expect (message "Raté" dans ton code) ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Par défaut
    exactement!

Discussions similaires

  1. pb d'ouverture fichier excel
    Par Phiss dans le forum ASP
    Réponses: 14
    Dernier message: 20/11/2006, 14h41
  2. [VBA-E] cacher l'ouverture fichier excel barre des taches
    Par icicmoi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/05/2006, 17h39
  3. Ouverture fichier excel
    Par licorne dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/04/2006, 16h50
  4. Réponses: 1
    Dernier message: 26/01/2006, 18h16
  5. activation macro lors d'une ouverture fichier Excel
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2005, 15h08

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