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 :

Excel et SaveDialog


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut Excel et SaveDialog
    Bonjour,

    Je cherche à utiliser un SaveDialog pour permettre à l'utilisateur de choisir un nom de fichier Excel puis de l'enregistrer où il le souhaite.
    Je pensais tout d'abord utiliser la technique OLE qui peut créer un fichier Excel par défaut dans un endroit donné du disque, mais cela ne permet pas de demander le nom du fichier sous lequel l'utilisatuer souhaite l'enregistrer.

    Voici le code por créer le fichier Excel avec OLE :

    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
     
    unit UExcel;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, OleServer, Excel97, ComObj, StdCtrls;
     
    type
      Texcel = class
     
      procedure Creer(nom : string);
     
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Excel : Texcel; 
      OleApplication : variant;
      OleWorkbook : variant;
     
    implementation
     
    {$R *.dfm}
     
    {********* Crée un fichier excel **********}
     
    procedure Texcel.Creer(nom : string);
     
            begin
            OleApplication:=CreateOleObject('Excel.Application');
            OleApplication.Visible:=false;
            OleWorkbook:=OleApplication.workBooks.Add;
            OleApplication.ActiveWorkBook.Save;
            OleApplication.Quit;
            OleApplication:=Unassigned;
            end;
     
    end.
    Est-il possible d'utiliser un SaveDialog pour réaliser ce que je souhaite ?
    Si oui quelqu'un aurait-il un exemple à me proposer ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If SaveDialog.execute Then
      begin
         ExcelApp.DisplayAlerts := False;// pour ne pas voir la fenetre d'enregistrer sous
         ExcelApp.ActiveWorkbook.SaveAs(Filename:=SaveDialog. Filename);
      end;
    @+ Phil

    PS c'est quand meme bizard de desactive l'alerte d'ecxel pour le remplacer par un savedialog

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    Merci beaucoup pour ta réponse, mais j'ai des erreurs qui apparaissent.
    J'utilise les composants SaveDialog1, ExcelApplication1 et ExcelWorkbook1.Mon code est alors :

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    unit Exp;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Menus, StdCtrls, jpeg, ExtCtrls, OleServer, UExcel, Excel2000;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Fichier1: TMenuItem;
        Nouvelleexprience1: TMenuItem;
        Quitter1: TMenuItem;
        TMainMenu: TMainMenu;
        Button3: TButton;
        Label1: TLabel;
        Label2: TLabel;
        Image1: TImage;
        Image2: TImage;
        N1: TMenuItem;
        SaveDialog1: TSaveDialog;
        ExcelApplication1: TExcelApplication;
        RadioGroup1: TRadioGroup;
        RadioButton5: TRadioButton;
        RadioButton6: TRadioButton;
        RadioButton7: TRadioButton;
        RadioButton8: TRadioButton;
        Panel1: TPanel;
        Label3: TLabel;
        ExcelWorkbook1: TExcelWorkbook;
        procedure Quitter1Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Nouvelleexprience1Click(Sender: TObject);
     
      private
        { Private declarations }
        Filename : string;
     
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Quitter1Click(Sender: TObject);
    begin
            close;
    end;
     
    procedure TForm1.Button3Click(Sender: TObject);
    begin                
            close;
    end;
     
    procedure TForm1.Nouvelleexprience1Click(Sender: TObject);
    begin   
            if SaveDialog1.execute Then
                    begin
                            ExcelApplication1.DisplayAlerts := False;
                            ExcelApplication1.ActiveWorkbook.SaveAs(Filename:=SaveDialog1. Filename);
                    end;
    end;
     
    end.
    J'obtiens les erreurs suivantes :
    [Error] Exp.pas(93): '[' expected but ':=' found
    [Error] Exp.pas(94): Not enough actual parameters
    [Error] Exp.pas(94): 'END' expected but ')' found
    [Error] Exp.pas(98): '.' expected but ';' found
    [Fatal Error] Projetexp.dpr(6): Could not compile used unit 'Exp.pas'

    Désolé je débute

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut


    pas d'espace entre savedialog1. et filename
    c'est ma faute j'ai tapé trop vite

    @+ Phil

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    Voilà c'est fait et merci encore de ta réponse

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

Discussions similaires

  1. [VB6] [Excel] Résultat d'une requete ds une feuille
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/01/2003, 17h52
  2. [VBA-E] [Excel] Filtrer le donnees d'une sheet
    Par donia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/09/2002, 10h55
  3. [Kylix] kylix et excel
    Par gothe dans le forum EDI
    Réponses: 1
    Dernier message: 19/09/2002, 19h44
  4. Réponses: 2
    Dernier message: 22/07/2002, 12h13
  5. [Kylix] Excel via kylix
    Par Billy joel dans le forum EDI
    Réponses: 1
    Dernier message: 23/05/2002, 11h57

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