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 :

dupliquer une feuille dans excel


Sujet :

Delphi

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Par défaut dupliquer une feuille dans excel et la renommer
    Bonjour, je sais qu'il existe un poste dans la faq, mais je n'arrive pas à l'utiliser correctement soit les versions ont changé depuis.
    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var MaFeuille :_Worksheet;
    begin
    OleApplication := CreateOleObject('Excel.Application');
    OleApplication.visible:=true;
    oleworkbook := oleapplication.Workbooks.Add('c:\PNT\Time_Sheet_pr.xls');
    MaFeuille:=oleworkbook.Worksheets[1] as _worksheet;
    MaFeuille.Copy(EmptyParam,oleworkbook.Sheets[oleworkbook.Sheets.Count],0);
    je ne sais pas le compiler _worksheet n'est pas reconnu, je ne sais pas ce que je dois ajouter dans les uses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oleapplication.workbooks.Copy(oleapplication.workbooks.Sheets[oleapplication.workbooks.Sheets.Count],0);
    lorsque j'utilise ceci il me dit que le nombre de paramètre n'est pas bon, et rien dans l'aide de delphi , je ml'en remets donc à vous

  2. #2
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Bonjour

    Cela doit marcher.

    Mais moi je déclarerais MaFeuille, OleApplication et oleworkbook comme OleVariant

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Par défaut
    bonjour, merci de ta réponse, mais le nombre de paramètre n'est tjs pas bon :o j'utilise bds je ne sais pas si ca a changé depuis mais rien dans l'aide en tt cas :s

  4. #4
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    L'instruction suivante fonctionne chez moi
    OleApplication.WorkSheets[1].Copy(After := OleApplication.WorkSheets[1]);
    Excel_Tlb est dans la clause Uses et OleApplication est déclaré comme _Application.

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Par défaut
    oui c'est bien ca, ca fonctionne(dsl pr le temps de test...)maintenant j'ai un autre souci cmt puis je renommer la feuille créée .?
    j'ai testé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oleapplication.worksheets.name:=dbeditini.text;
    mais il plante
    voici le code complet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    OleApplication := CreateOleObject('Excel.Application');
    OleApplication.visible:=true;
    oleworkbook := oleapplication.Workbooks.Add('c:\PNT\Time_Sheet_pr.xls');
    OleApplication.WorkSheets[3].copy(After := OleApplication.WorkSheets[4]);
    Oleworkbook.Worksheets.item['bp (2)'].Activate;
    oleapplication.worksheets.name:=dbeditini.text;

  6. #6
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Tu as oublié l'index de la feuille à renommer.
    Donc cela devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oleapplication.worksheets[NumeroDeFeuille].name:=dbeditini.text;

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Par défaut
    impccable un grand merci
    je mets le code final si ca intéresse qq'un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    OleApplication := CreateOleObject('Excel.Application');
    OleApplication.visible:=true;
    oleworkbook := oleapplication.Workbooks.Add('c:\PNT\Time_Sheet_pr.xls');
    num:=oleapplication.Worksheets.Count;
    OleApplication.WorkSheets[3].copy(After := OleApplication.WorkSheets[num]);
    Oleworkbook.Worksheets.item[num+1].Activate;
    oleapplication.worksheets[num+1].name:=dbeditini.text;

  8. #8
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Bon vent à toi avec Delphi et n'oublies pas de mettre le sujet résolu

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

Discussions similaires

  1. [VBA][Excel]Copier une feuille dans un nouveau classeur
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2020, 13h51
  2. [XL-2010] Dupliquer une feuille dans un autre classeur
    Par g.dupin.gemma dans le forum Excel
    Réponses: 18
    Dernier message: 29/04/2014, 09h08
  3. Ajouter une feuille dans Excel
    Par lionjpl dans le forum C#
    Réponses: 1
    Dernier message: 20/04/2010, 23h01
  4. cacher une feuille dans excel?
    Par ghosty04 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/09/2009, 17h17
  5. copier une feuille dans un nouveau doc excel
    Par alkmehd dans le forum Access
    Réponses: 1
    Dernier message: 24/09/2005, 12h01

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