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 habitué
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Points : 158
    Points
    158
    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
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour

    Cela doit marcher.

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

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Points : 158
    Points
    158
    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
    Points : 1 199
    Points
    1 199
    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 habitué
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Points : 158
    Points
    158
    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
    Points : 1 199
    Points
    1 199
    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 habitué
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Points : 158
    Points
    158
    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
    Points : 1 199
    Points
    1 199
    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