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 :

OLE Excel, change le nom d'une feuille


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut OLE Excel, change le nom d'une feuille
    Bonjour,
    Je développe une application, et extrait un petit compte rendu sous Excel;
    - J'ouvre Excel,
    - J'ouvre un nouveau classeur

    Jusque là, tout ce passe bien, puis quand, j'essaye de changer le nom d'une feuille EXcel (existante (Feuil1), ou créée) j'obtient un message d'erreur qui me dit "type de variable incorrect" !!

    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                GlobalParameters.vMSExcel = Variant::CreateObject("Excel.Application");
                GlobalParameters.vMSExcel.OlePropertySet("Visible", true);
                GlobalParameters.vXLWorkbooks = GlobalParameters.vMSExcel.OlePropertyGet("Workbooks");
                GlobalParameters.vXLWorkbook = GlobalParameters.vXLWorkbooks.OleFunction("Add");
                GlobalParameters.vWorksheets = GlobalParameters.vXLWorkbook.OlePropertyGet("Worksheets");
                GlobalParameters.vWorksheet = GlobalParameters.vXLWorkbook.OlePropertyGet("Worksheets", 1);
                Variant vWsNewName = "All_Measurement";
                GlobalParameters.vWorksheet.OlePropertySet("Name", vWsNewName);
    Qu'est ce que j'ai fait de mal? Où se trouve le problème?
    Merci

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Tu l'as peut être déjà vu, mais je le signal tout de même, voici le code dans la FAQ : http://cpp.developpez.com/faq/bcb/?p...heetchangename

  3. #3
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Essaie ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       AnsiString NomFeuille = "All_Measurement";
     
       Variant vWsNewName = StringToOleStr(NomFeuille);
     
       GlobalParameters.vWorksheet.OlePropertySet("Name", vWsNewName);

  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
    Salut bandit boy
    Je pense que ton code est bon, je crois qu'il manque la selection de la feuille (ce qui parrait logique si l'on a un classeur de plusieurs feuilles)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                GlobalParameters.vWorksheet = GlobalParameters.vXLWorkbook.OlePropertyGet("Worksheets", 1);
    // on selectionne la Feuil1 (a adapter a ton code)
    vWorksheet.OleProcedure("Select");
                GlobalParameters.vWorksheet.OlePropertySet("Name", vWsNewName);

  5. #5
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Merci beaucoup messieurs.

    pottiez, je te remercie, mais j'avais effectivement vue cette page, mon code n'est autre que des copier/coller de cette page.

    kurul1, super, ta méthode fonctionne à merveille.

    blondelle, merci beaucoup, mais je ne sais pas pourquoi l'ajout du "Select" ne change rien, j'ai exactement la même erreur .

    Merci encore.

  6. #6
    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
    Vraiment bizarre ta variable etait declaree en Variant, normalement il ne devrait pas y avoir d'erreur

  7. #7
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Justement moi j'avais aussi cette erreur et je l'ai résolu comme expliqué plus haut

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

Discussions similaires

  1. [XL-2003] Nom de boutons qui change quand je copie une feuille Excel.
    Par Nicoyong dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/04/2015, 15h35
  2. comment je change le nom d'une feuille d'un Tree
    Par groupe dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 27/05/2008, 16h10
  3. Réponses: 1
    Dernier message: 15/11/2007, 13h51
  4. Réponses: 4
    Dernier message: 09/11/2005, 17h11

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