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 :

grouper/créer un plan sous Excel


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par défaut grouper/créer un plan sous Excel
    Bonjour à tous,
    je vous soumet un petit problème bien ennuyeux sous Delphi.
    Mon application "pilote" une feuille Excel dans laquelle j'ai créé des plans de regroupement (les petits + et - qui permettent de regrouper des colonnes ou des lignes).
    J'ai créé un code en VBA indépendant permettant de contracter et déployer ce plan en cliquant sur un bouton de la feuille Excel.
    Le problème survient lorsque je veux reprendre ce code (indépendamment du bouton) sous Delphi : j'obtiens toujours le message suivant : "Erreur EOleSysError : le membre est introuvable"

    J'ai vérifié plusieurs fois, la plage de cellules Excel est bien la même que dans mon code VBA.
    J'ai fait quelques tests en insérant juste des valeurs dans cette plage au lieu de la contracter et ça fonctionne parfaitement.

    P.S : comobj est bien enregistré dans la clause USES.

    voici le code Delphi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var arange : ansistring;
    begin
        arange := 'H10';
        Feuille.activate;
        Feuille.range[arange].Columns(0).Showdetail:=false;
    end
    voici le code VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      Worksheets("Feuil1").Activate
      Set arange = Range("H10") 
      arange.Columns(0).ShowDetail = False

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Salut
    est-ce que cette erreur se produit bien sur ces lignes là?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  3. #3
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par défaut
    Hello,
    oui, elle se produit sur la ligne :
    "Feuille.range[arange].Columns(0).Showdetail:=false;"

    Elle se produit quelle que soit la colonne que j'utilise

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Ca peut venir alors de ta version de Delphi ou/et d'Excel... Il te dit membre introuvable, c'est qu'il y a une propriété qu'il ne trouve pas... Cherche dans ce sens là...
    Quelles versions tu utilises?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #5
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par défaut
    J'utilise Excel 2003 et Delphi7 pro

    Toutes les autres fonctions faisant référence à une plage de cellules comme de remplir de texte la plage fonctionnent...

  6. #6
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par défaut
    J'ai changé mon fusil d'épaule cette nuit.
    J'utilise désormais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Feuille.range['H2','I2'].entireRow.ShowDetail:=true
    mais j'ai l'erreur suivante lors de l'exécution : 'EOLEException : impossible de définir la propriété showdetail de la classe range'

    par ailleurs l'éditeur m'autorise à utiliser cette propriété qu'il définit comme un OLEVariant et le code en VBA marche très bien.

    Dans le pire des cas, est-il possible de transformer ce code VBA en DLL que je reprendrais sous Delphi? Si oui, comment créer cette DLL?

    Merci à tous pour vos suggestions

  7. #7
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par défaut
    Me revoilà.....
    J'ai trouvé la réponse hier.
    En fait, il ne faut pas définir de plage à plusieurs colonnes ou plusieurs lignes pour la propriété 'showdetail'. Il suffit de lui indiquer une cellule de la dernière colonne pour un groupe de colonnes (id pour les lignes) et de ne rien mettre comme seconde cellule de la plage.
    Voici le code qui fonctionne pour contracter un groupe de lignes finissant sur la ligne 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Feuille.range['I2', emptyparam].entireRow.ShowDetail:=true
    Si jamais ça peut servir à certains voire dans la faq.....
    Merci quand même pour vos suggestions

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

Discussions similaires

  1. Ordonner et créer des catégories sous excel
    Par mouncefdi dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 20/04/2009, 10h27
  2. Créer un formulaire sous excel pour la saisie d'informations
    Par onobyone dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 16/01/2008, 10h32
  3. Mettre un texte en premier plan sous Excel
    Par Vyan06 dans le forum Excel
    Réponses: 1
    Dernier message: 02/07/2007, 16h58
  4. planning sous excel : axe des dates !
    Par egu07 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/04/2007, 13h01
  5. Créer un tableau sous Excel
    Par paolo2002 dans le forum Delphi
    Réponses: 3
    Dernier message: 25/07/2006, 13h57

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