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

Langage Delphi Discussion :

Copier du texte dans EXCEL


Sujet :

Langage Delphi

  1. #1
    Inactif  
    Inscrit en
    Février 2004
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 97
    Points : 53
    Points
    53
    Par défaut Copier du texte dans EXCEL
    Je désire copier des valeurs (depuis D6) dans un fichier EXCEL.
    Le code fonctionne lorsque j'utilise une copie de VALEUR.
    J'ai bien mis ComObj dans Uses.

    Par contre j'ai un message d'erreur lorsque je veux copier du texte dans une cellule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Var
     
     my_ole :Variant;
     
    .../...
    Procedure ........
     
     my_ole:=CreateOleObject('Excel.Application'); // Obligatoire
     
      // le chemin complet semble nécessaire bien que le fichier XLS  soit avec le source Delphi
     
      my_ole.WorkBooks.Open('D:\DOCUMENTS YVES\DELPHI Projects\essai yd ole excel mars 2010\Cardio.xls');
     
      (* ci-dessous : les 2 écritures Worksheets ou Sheets sont admises   *)
     
      my_ole.workbooks[1].Sheets['Pro'].Activate; // si on veut voir la feuille sélectionnée qui porte un NOM
     
       my_ole.WorkBooks[1].Sheets['Pro'].Cells[1,2].Value:=250;  // ajout de la valeur 250
     
    // La ligne ci-dessous ne fonctionne pas : 
     
    // MESSAGE ERREUR : impossible de définir la propriété text de la classe Range
     
      my_ole.WorkBooks[1].Sheets['Pro'].Cells[1,5].Text:='TRUC';  // ajout de TEXTE 
     
     
      my_ole.visible:=TRUE;   // on voit la feuille et son ajout
    Je dois faire une erreur de syntaxe ...
    Merci de me corriger.

  2. #2
    Invité1
    Invité(e)

  3. #3
    Inactif  
    Inscrit en
    Février 2004
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    J'avais vu ce code...
    qui diffère du mien.

    Celui que je possède provient d'un excellent tuto de Colibri mais il ne parle que de valeurs jamais de texte.
    Je ne trouve pas d'aide sur :
    WorkSheets[1].Cells[ligne, colonne]. xxx

    xxx = Value, Formula,... Text je ne l'ai pas inventé mais ça ne marche pas chez moi...

  4. #4
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par DURVILLE Voir le message
    J'avais vu ce code...
    qui diffère du mien.

    Celui que je possède provient d'un excellent tuto de Colibri mais il ne parle que de valeurs jamais de texte.
    Je ne trouve pas d'aide sur :
    WorkSheets[1].Cells[ligne, colonne]. xxx

    xxx = Value, Formula,... Text je ne l'ai pas inventé mais ça ne marche pas chez moi...
    Salut Regarde export-multi-stringgrid-vers-excel

    Bye

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,

    Par contre j'ai un message d'erreur lorsque je veux copier du texte dans une cellule.
    ... Bizarre, car chez moi (WinXp + Delphi5) ce code marche très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    unit uExcel;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, ComObj;
    
    type
      TForm1 = class(TForm)
        Label1: TLabel;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
    
    var
      Form1: TForm1;
      my_ole : Variant;
    
    implementation
    
    {$R *.DFM}
    
    function  RepAppli : string; { renvoie Rep avec \ terminal }
    begin     RepAppli:=ExtractFilePath(Application.ExeName); end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      my_ole:=CreateOleObject('Excel.Application');
    
      my_ole.WorkBooks.Open(RepAppli+'Eval_Dep.xls');
      //my_ole.workbooks[1].Sheets['FEVRIER'].Activate; //<- si on veut activer une feuille ciblée portant un NOM
      my_ole.workbooks[1].Sheets[1].Activate; //<- sinon elles sont désignées par leur N° Sheets[2] etc
    
      my_ole.WorkBooks[1].Sheets[1].Cells[3,3].Value:=8888888;    // ajout de la valeur 8888888 en C3
      my_ole.WorkBooks[1].Sheets[1].Cells[4,4].Value:='MonTexte'; // ajout de 'MonTexte' en D4 et le texte s'affiche effectivement  
      my_ole.visible:=TRUE;
    end;
    
    end.
    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re-bonjour,

    Je dois faire une erreur de syntaxe ...
    Je parie que dans ton fichier Cardio.xls les Sheets ne portent pas le nom de 'Pro' remplaces donc partout pour voir Sheets['Pro'] par Sheets[1].

    Vérifier également si le chemin d'accès au fichier 'D:\DOCUMENTS YVES\DELPHI Projects\essai yd ole excel mars 2010\Cardio.xls') est correct.

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  7. #7
    Inactif  
    Inscrit en
    Février 2004
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    Résolu :

    En fait , comme le fait remarquer Gilbert G., le terme "Value" fonctionne aussi bien pour les chaines que pour des valeurs numériques.
    "Cells(l,c).Formula" fonctionne aussi ...

    Donc "text" je laisse tomber; ça ne doit pas exister sous cette forme.

    Mon code (nom des feuilles) et mon chemin étaient bien OK.

    J'ai dû être trompé par une autre erreur qui s'était glissée au moment où j'ai essayé "Value" pour du texte !!!
    Désolé de vous avoir fait chercher ...

  8. #8
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par DURVILLE Voir le message
    Résolu :

    En fait , comme le fait remarquer Gilbert G., le terme "Value" fonctionne aussi bien pour les chaines que pour des valeurs numériques.
    "Cells(l,c).Formula" fonctionne aussi ...

    Donc "text" je laisse tomber; ça ne doit pas exister sous cette forme.

    Mon code (nom des feuilles) et mon chemin étaient bien OK.

    J'ai dû être trompé par une autre erreur qui s'était glissée au moment où j'ai essayé "Value" pour du texte !!!
    Désolé de vous avoir fait chercher ...
    Tu n'as pas regarder mon lien !!! export-multi-stringgrid-vers-excel


    Il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     vWorksheet.Cells.Item[i+1+ligneDepart,1].Value := 'TOTAL : ';
    et non

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     vWorksheet.Cells[i+1+ligneDepart,1].Value := 'TOTAL : ';


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

Discussions similaires

  1. [Tkinter] Copier un texte dans le presse-papier
    Par fire.stone dans le forum Tkinter
    Réponses: 3
    Dernier message: 01/05/2018, 10h22
  2. [VBA-W]prendre des valeurs "texte" dans Excel
    Par teromah dans le forum VBA Word
    Réponses: 12
    Dernier message: 14/06/2007, 16h20
  3. [VBA-W] copier du texte d'excel dans word
    Par perophron dans le forum VBA Word
    Réponses: 25
    Dernier message: 06/06/2007, 12h09
  4. Réponses: 1
    Dernier message: 19/01/2006, 19h22

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