FAQ DelphiConsultez toutes les FAQ

Nombre d'auteurs : 123, nombre de questions : 920, dernière mise à jour : 8 novembre 2019  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums Delphi et Delphi et bases de données de www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous souhaitez y apporter des corrections ou la compléter, contactez un responsable (lien au bas de cette page).

Nous espérons que cette FAQ saura répondre à vos attentes. Nous vous en souhaitons une bonne lecture.

L'équipe Delphi de Developpez.com.

Commentez


SommaireMicrosoft OfficeMicrosoft ExcelGestion des classeurs (6)
précédent sommaire suivant
 

Pour ouvrir un nouveau classeur, utilisez la commande suivante :

Code delphi : Sélectionner tout
1
2
3
MonClasseur : _workbook; 
... 
MonClasseur:=ExcelApplication1.Workbooks.Add(xlWBATWorksheet,0);
Le classeur est créé en contenant une feuille vide. Il est possible de sélectionner avant la création du classeur le nombre de feuilles vides créées :
Code delphi : Sélectionner tout
1
2
ExcelApplication1.SheetsInNewWorkbook[0]:=8;  
MonClasseur:=ExcelApplication1.Workbooks.Add(EmptyParam,0);

Pour ouvrir un classeur existant, utilisez la commande suivante :
Code delphi : Sélectionner tout
1
2
3
4
5
MonClasseur : _workbook; 
... 
MonClasseur:=ExcelApplication1.Workbooks.Open('C:\Temp\tuto.xls',False,False, 
      EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, 
      EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
L'interface récupérée dans la variable MonClasseur sera ensuite utilisée dans les autres fonctions portant sur les classeurs.
Il est possible d'utiliser la boite de dialogue d'Excel pour obtenir le nom du classeur

Si un classeur est déjà ouvert dans Excel, il est possible d'en récupérer l'interface par :
Code delphi : Sélectionner tout
1
2
3
4
MonClasseur : _workbook; 
... 
If ExcelApplication1.Workbooks.Count>=1 Then 
  MonClasseur:=ExcelApplication1.Workbooks[1];

Il est possible aussi de sélectionner le classeur par son nom ( sans l'extension ). Ce qui peut être utile quand plusieurs classeurs sont ouvert et que l'index n'est pas connu :
Code delphi : Sélectionner tout
MonClasseur:=ExcelApplication1.Workbooks['tuto'];

Mis à jour le 18 janvier 2014 bidou

Pour enregistrer le classeur ouvert, utilisez la commande suivante :

Code delphi : Sélectionner tout
MonClasseur.Save(0);
Pour enregistrer le classeur avec un nouveau nom :
Code delphi : Sélectionner tout
1
2
3
MonClasseur.SaveAs('c:\tuto\excel.xls', 
  EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, 
  xlNoChange,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
Il est possible d'appeler directement la boite de dialogue "Enregistrer sous..." d'Excel à l'aide de la commande suivante :
Code delphi : Sélectionner tout
1
2
3
MonClasseur.SaveAs(ExcelApplication1.GetSaveAsFilename(), 
  EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, 
  xlNoChange,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);

Mis à jour le 18 janvier 2014 bidou

Pour fermer le classeur sans l'enregistrer, utilisez la commande suivante :

Code delphi : Sélectionner tout
MonClasseur.Close(False, emptyparam, emptyparam, 0);
Aucune confirmation ne sera demandée, même si le classeur a été modifié.

Pour fermer le classeur avec enregistrement :
Code delphi : Sélectionner tout
MonClasseur.Close(True, emptyparam, emptyparam, 0);

Pour fermer le classeur avec enregistrement sous un autre nom :
Code delphi : Sélectionner tout
MonClasseur.Close(False, 'c:\temp\tuto.xls', emptyparam, 0);
Remarque : après fermeture du classeur ne plus utiliser la variable classeur sans avoir ouvert un nouveau classeur.

Mis à jour le 18 janvier 2014 bidou

Pour protéger le classeur :

Code delphi : Sélectionner tout
MonClasseur.Protect('MotDePasse',True,True);
Pour supprimer la protection il faut donner le mot de passe ayant servi à le protéger :
Code delphi : Sélectionner tout
MonClasseur.Unprotect('MotDePasse',0);

Mis à jour le 18 janvier 2014 bidou

Pour ajouter une feuille au classeur :

Code delphi : Sélectionner tout
Monclasseur.Sheets.Add(EmptyParam,EmptyParam,1,xlWBATWorksheet,0);
Le type de feuille est défini suivant la constante utilisée :
  • xlWBATChart : Feuille graphique
  • xlWBATExcel4MacroSheet : Feuille macro Excel 4
  • xlWBATWorksheet : Feuille normale

Il est possible de définir la position de la nouvelle feuille, par exemple pour ajouter la feuille en fin :
Code delphi : Sélectionner tout
1
2
Monclasseur.Sheets.Add(EmptyParam,monclasseur.Sheets[monclasseur.Sheets.count] 
                   ,1,xlWBATExcel4MacroSheet,0);

Mis à jour le 18 janvier 2014 bidou

Pour dupliquer la page sélectionnée sur plusieurs feuilles :

Code delphi : Sélectionner tout
1
2
MaFeuille:=MonClasseur.Worksheets[1] as _worksheet; 
MonClasseur.Worksheets.FillAcrossSheets(MaFeuille.UsedRange[0],xlFillWithAll,0);

Mis à jour le 18 janvier 2014 bidou

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2019 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.