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

API, COM et SDKs Delphi Discussion :

[OLE Excel] Erreur


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 49
    Points
    49
    Par défaut [OLE Excel] Erreur
    Quand j'essaie de compiler, le compilateur me donne cette erreur :
    ---------------------------
    Notification d'une exception du débogueur
    ---------------------------
    Le projet ImportExcel.exe a provoqué une classe d'exception EOleSysError avec le message 'Opération non disponible'. Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour continuer.
    Et le compilateur s'arrête sur ça :
    try
    OleApplication := GetActiveOleObject('Excel.Application');
    except
    OleApplication := CreateOleObject('Excel.Application');
    end;
    Je sais pas ce que c'est. Qqn a une idée ?
    Merci.

  2. #2
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Si les options du débugger sont paramétrés pour s'arrêter sur les exceptions Delphi, il est tout à fait normal que le débugger stoppe l'exécution du programme.

  3. #3
    Membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 49
    Points
    49
    Par défaut
    Oui, mais ça signifie quoi ? Il y a une erreur ? C'est du au code ?

  4. #4
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Tu peux nous donner le reste du code?
    Parce que là, on pourrait te donner des tas de suppositions, vu le peu que tu nous as fourni.

    Frank

  5. #5
    Membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 49
    Points
    49
    Par défaut
    Bah en faite, je sais pas ou se situe l'erreur.
    Le compilateur s'arrête dans cette partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TfmImportExcel.FormCreate(Sender: TObject);
    begin
       try
            OleApplication := GetActiveOleObject('Excel.Application');
       except
            OleApplication := CreateOleObject('Excel.Application');
       end;
       OleApplication.visible:=True; // pour rendre Excel visible
    end;
    Alors après, je sais pas quoi vous montrer...

  6. #6
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Un peu d'aide delphi:
    EOleSysError is the exception class for errors specific to the OLE IDispatch interface.

    Unit

    ComObj

    Description

    EOleSysError is the exception class for errors that occur during an attempt to invoke a method or property of an OLE automation object. When the IDispatch Invoke method fails, EOleSysError is raised. Objects invoked through IDispatch can return the error code—an OLE status code or SCODE—indicating the reason for the error.
    As tu rajouté ComObj dans les uses?
    Et tu déclares bien ton OleApplication comme variant?

    Frank

  7. #7
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Quelques précision:
    Si Excel n'est pas ouvert lors de l'exécution de ton programme, une exception doit être levée sur la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      OleApplication := GetActiveOleObject('Excel.Application');
    C'est tout à fait normal car on tente d'obtenir une instance de l'application Excel et celle-ci n'est pas en mémoire. Cette éventualité est traitée dans la section except où l'on demande la création d'une nouvelle instance.
    Ce que je voulais dire dans ma précédente réponse c'est que les options du debugger permettent de lui demander de s'arrêter sur les exceptions générées même si elles sont traitées dans le code. C'est, je pense, ce qui se passe dans ton cas. Pour désactiver cette option (Delphi 7): Menu Outils->Options du débogueur->Exceptions du langage et décocher la case "Stopper sur exceptions".
    PS: je n'ai qu'une version anglaise sous la main, les noms exacts peuvent être un peu différents.

  8. #8
    Membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 49
    Points
    49
    Par défaut
    As tu rajouté ComObj dans les uses? OUI
    Et tu déclares bien ton OleApplication comme variant? OUI


    OK merci. Ca marche nickel comme ca !

  9. #9
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    De rien.

  10. #10
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Désolé Pour une fois, c'est moi qui pollue le forum en donnant des réponses inadaptées. La prochaine fois, je lirais la question dix fois avant de répondre.

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

Discussions similaires

  1. DELPHI, EXCEL : Erreur OLE avec fonction SOMME.SI
    Par benoît14 dans le forum Langage
    Réponses: 4
    Dernier message: 07/01/2013, 13h30
  2. [PB 12] Erreur OLE Excel
    Par moussmouss dans le forum Powerbuilder
    Réponses: 1
    Dernier message: 10/01/2012, 14h22
  3. [OLE Excel] Aller jusqu'à la dernière cellule rempli
    Par JBrek dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 07/08/2009, 20h21
  4. Réponses: 1
    Dernier message: 04/03/2008, 01h59
  5. [OLE Excel] Récupérer une colonne d'un coup
    Par Nemerle dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/05/2004, 16h56

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