Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ATTAQUER EXCEL AVEC DELPHI


Information sur la source

Catégorie :Tutoriaux Niveau : Initié Date de création : 18/06/2005 Vu / téléchargé: 13 330 / 3 429

Note :
5,33 / 10 - par 3 personnes
5,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (32)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Plusieurs procedures diverses pour attaquer Excel avec Delphi.
vous y trouverez :
1-Connection a Excel
2-Ouverture d'un classeur
3-Création d'un ou plusiers feuilles
4-Chargement d'un Ttable dans une feuille
5-Dessiner un Graphe avec des données existante
et autres....
Ce projet est réalisé en suivant le FaqDelphi depuis :
www.developpez.com. contacts:
aymen_k2003@yaoo.fr ou  delphifr.com

 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de aymenk le 18/06/2005 12:38:19

Tous commentaires est le bienvenus...
Faites moi savoir si vous faites des Modifications sur ce code

signaler à un administrateur
Commentaire de Delphiprog le 18/06/2005 15:39:10 administrateur CS

Ben, déjà la remarque que l'on fait régulièrement aux débutants : nommer les composants utilisés dans le code. Ca facilite grandement la lecture du code sans avoir à charger le projet dans l'EDI pour savoir à quoi correspond tel ou tel bouton.

Il aurait fallu préciser que cette application est basée sur la série de composants livrée avec certaines versions et un certain niveau de Delphi. Le composant TExcelApplication est disponible depuis Delphi5 ou 6. Tout le monde ne pourra donc pas exploiter ce code source.

signaler à un administrateur
Commentaire de aymenk le 19/06/2005 09:57:13

Merci Delphiprog.Mais si on vois tous les exemples y'en beaucoup qui dépasser même Delphi5 ,comme celui qui dessine un calendrier sur le Wallpapaer du bureau,si je te dis que je me vois VIEUX on utilisant D5 !!!???...
Merçi quand même ..puisque nous y somme donne moi votre avis sur l'exemple de cryptage

signaler à un administrateur
Commentaire de sidena le 20/06/2005 09:23:55

A la compilation, j'ai :
[Erreur] Unit1.pas(88): Identificateur non déclaré : 'emptyparam'...
Dommange, ca avait l'air intéressant !

Sidea

signaler à un administrateur
Commentaire de papyvore le 20/06/2005 09:37:20

pour SIDENA
(****************************************
Modif pour fonctionnement avec D7
- ajouer l'unité Variants
- change tous les Range en ExcelRange
- ajouter 2 params EmptyParam a tous les Open(fichierXLS....
    Open(fichierXLS,False,False,
      EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
      EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
      devient
    Open(fichierXLS,False,False,
      EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
      EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
      EmptyParam,EmptyParam,0);
a priori ça marche sur D7 avec ces modifs      
*****************************************)

signaler à un administrateur
Commentaire de aymenk le 20/06/2005 10:49:34

Salut  papyvore,
Merçi de ton aide, j'utilise Delphi5 donc je ne peut savoir; pourmoi ça mrche.
REM:à NIX
pouqoui ne pas ajouter une case è cocher pour préciser sur quel version le source a été développé. Merçi a tous le monde

signaler à un administrateur
Commentaire de sidena le 20/06/2005 10:49:57

Merci, mais ça ne marche pas encore.
Ok pour Variants, ok pour les open, mais après avoir changé Range en Excelrange ligne 308, j'ai :
[Erreur] Unit1.pas(390): '[' attendu(e) mais ':=' trouvé(e)
le ligne 390 étant :
  MaFeuille.Range['B1','E3'].Value:='Hello World Cellule Ajuster par largeur ...etc'  ;
??!!

signaler à un administrateur
Commentaire de papyvore le 20/06/2005 11:17:11

si si
change tous les Range en ExcelRange
y compris MaFeuille.Range['B1','E3'].Value et tos le saures range
MaFeuille.ExcelRange['B1','E3'].Value

signaler à un administrateur
Commentaire de papyvore le 20/06/2005 11:18:56

correctif
y compris MaFeuille.Range['B1','E3'].Value et tous les autres range

signaler à un administrateur
Commentaire de sidena le 20/06/2005 12:18:22

Si je fais cela, j'ai :
[Erreur] Unit1.pas(317): Identificateur non déclaré : 'Excelrange'
la ligne 317 étant devenue :
MaFeuille.Excelrange['A2','A4'].EntireRow.Delete(xlUp);
...?

signaler à un administrateur
Commentaire de papyvore le 20/06/2005 12:30:40

oups erreur de ma part dans l'explication
il faut bien laisser les
  MaFeuille.Range['B1','E3'].Value
Mais il faut changer toutes le variables de Type Range en            ExcelRange désolé  :(
Exemple
procedure TForm1.Button21Click(Sender: TObject);
var
  MonClasseur : _workbook;
  MaFeuille   : _worksheet;
  rMaPlage    : ExcelRange;//Range;
begin
If ExcelApplication1.Workbooks.Count>=1 Then                           //xlWBATExcel4MacroSheet : Feuille macro Excel 4
  MonClasseur:=ExcelApplication1.Workbooks[1];
  MaFeuille:=MonClasseur.Worksheets[1] as _worksheet;
  rMaPlage:=MaFeuille.UsedRange[0];
  //Attention : la plage définie par UsedRange est remise à jour par Excel
  //après des insertions ou suppression lors du prochain appel de UsedRange.
  //Par exemple l'adresse montrée ici n'est pas correcte :
MaFeuille.Range['A2','A4'].EntireRow.Delete(xlUp);
.........................
je pense ne rien avoir oublié

signaler à un administrateur
Commentaire de sidena le 20/06/2005 14:12:00

Ca coinçait toujours à la ligne 390 sur l'expression :
"MaFeuille.Range['B1','E3'].Value"
avec le message :
[Erreur] Unit1.pas(390): '[' attendu(e) mais ':=' trouvé(e)
Jusqu'à cette ligne tout se compilait bien...
Je lui ai donc donné un argument [=1] puisqu'il y tenait absolument, et tout s'en enfin compilé.

J'ai eu le message "Excel en mémoire" après avoir cliqué sur "Lancer Excel", mais immédiatement suivi d'un plantage en exception du debugger : " le serveur a généré une exception - oleexception... etc" suivi après 2 ou 3 essais infructueux par un plantage général de Delphi - sortie par ctrl-alt-del. Tout ca sans avoir cliqué sur le bouton 23, seul point que j'avais bricolé.

Par ailleurs, je lance Excel dans des programmes que j'ai écrit, mais de façon beaucoup plus rudimentaire (juste ouverture + charger une feuille). Donc ce ne doit pas etre mon système qui est en cause, mais il semble que ce prog n'est pas adapté à Delphi7 + XP edition familiale...

Merci quand même !

signaler à un administrateur
Commentaire de papyvore le 21/06/2005 09:33:45

j'ai la même config que toi et je t'assure que ça marche.
tu drevrais tout reprendre a zéro en replaçant l'unit1 télécharger
et faire les modifs
parceque la ligne 390 est
          MaFeuille.Range['B5','C12'].Select;
et non    MaFeuille.Range['B1','E3'].Value

le seul   MaFeuille.Range['B1','E3'].Value2 :='Hello World ...
est à la ligne 325.
rééssais c'est une bonne unit.
mais n'oublit pas avant compil et aprés les modifs de supprimer le .dcu fourni dans le zip qui est un D5, ou bien fait menu construire projet1.
si tu ne supprime pas le DCU c'est lui qui est prit en pemier
et génére des erreurs (ce qui m'est arrivé) :)
aprés ça marche trés bien.

signaler à un administrateur
Commentaire de yvessimon le 27/06/2005 16:25:04

Bonjour,

J'utilise DELPHI7 WINDOWS 2000 ET EXCEL 2002.

J'ai les mêmes PB.
DANS: procedure TForm1.Button23Click(Sender: TObject);

ligne :   MaFeuille.Range['B1','E3'].Value := 'Hello World Cellule Ajuster par largeur ...etc'  ;

Il y a : [Erreur] Unit1.pas(392): '[' attendu(e) mais ':=' trouvé(e)

Quelle version des 3 logiciels utiliser ?

As-tu des exemple des graphique ?..


Salutations

signaler à un administrateur
Commentaire de papyvore le 27/06/2005 19:42:33

bonjour
remplace value par value2
ligne :   MaFeuille.Range['B1','E3'].Value := 'Hello ..etc
devient   MaFeuille.Range['B1','E3'].Value2 := 'Hello ..etc

procedure TForm1.Button23Click(Sender: TObject);
var
  MonClasseur : _workbook;
  MaFeuille   : _worksheet;
begin
  ExcelApplication1.SheetsInNewWorkbook[0]:=1;
  MonClasseur:=ExcelApplication1.Workbooks.Add(EmptyParam,0);
  MaFeuille:=MonClasseur.Worksheets[1] as _worksheet;
  MaFeuille.Range['B1','E3'].Value2 :='Hello World Cellule Ajuster par largeur ...etc'  ;
  ExcelApplication1.Visible[0]:=true;
  with  MaFeuille.Range['A1','E3'] do
  begin

signaler à un administrateur
Commentaire de yvessimon le 28/06/2005 08:51:29

Bonjour,

Toutes mes excuses c'est dans le message du 21/06/2005.

Mais alors pour quoi " .value2 " ?

autre questions :

ou trouver toutes ces commandes ?

As-tu des exemples de graphes excel via delphi ?

Salutations

signaler à un administrateur
Commentaire de papyvore le 29/06/2005 09:23:20

bonjour
en D7 value est remplacé par value2 et value demande d'autre param [olevariant]

ces commandes sont dans ExcelXP.pas

Button22Click donne un ex. de graphe
tu peu aussi aller voir
http://delphi.developpez.com/faq/?page=excelgraphs#excelgraphtravail



signaler à un administrateur
Commentaire de ramadol le 03/11/2005 15:19:18

Bonjour les amis;
j'ai très respectueusement l'honneur de vous demander de me communiquer le programme relatif à la conversion dez chiffres en letres en Excell, avec des décimaux!
Mes remerciements

signaler à un administrateur
Commentaire de groben le 14/11/2005 11:54:20

Bonjour,
Je bosse avec une très vielle version de Delphi : delphi2.0 & je dois piloter Excel, Je peux le lancer faire quelques bidouilles, mais je n'ai ni Variant.pas, ni CimObj.pas, ni Excel200.pas...
1) comment savoir quelles fonctions je peux utiliser
2) est il possible de récupérer les fichiers *.pas et les DLL coorrrespondants ?
Merci de m'éclairer, bonne prog
BEN

signaler à un administrateur
Commentaire de FENETRES le 11/04/2006 15:13:57

Félicitations... vous avez du mérite ! Personnellement, il y a longtemps que j'en suis revenu au bon vieux composant TOleContainer. Ni le temps, ni la patience !

signaler à un administrateur
Commentaire de Mouniriz le 12/05/2006 10:38:33

Salut tt le monde !
Les tuto ont l'air cool mais je pe pas les utiliser. Je pe pas faire de graphes sur excel parceke il me manke les uses excel2000 ou 97.pas et *.dcu.
Je cri "a l'aide" et je vous demande si kelkun peu me les envoyer a mounirdrd@aol.com.
Merci

signaler à un administrateur
Commentaire de aymenk le 12/05/2006 19:49:43

Salut,Mouniriz,
les units excel2000 /97 ce trouve dans les source de delphi 5...
meme si tu as ces source et tu n'utilise pas delphi 5 ça ne va pas marcher..

signaler à un administrateur
Commentaire de yvessimon le 15/05/2006 08:48:04

Bonjour,

Delphi 2 avec windows 95 ? alors bon courage ! .

Passe à une version résente. Ce sera plus facile.

sur mon poste les fichiers  sont sur
C:\Program Files\Borland\Delphi7\Ocx\Servers
C:\Program Files\Borland\Delphi7\Imports
as tu fait une recherche complette sur les repertoires ?


Salutations

signaler à un administrateur
Commentaire de sterkasor le 24/07/2006 08:50:02

Est-ce-qu ce code peut aussi trier des doublons ?

signaler à un administrateur
Commentaire de drezmir le 18/12/2006 10:00:34

Bonjour (Excuse-moi pour ma francaise)

J'ai une question:
Pour visualiser les Gridlines en Excel il doive ecrire
  // Show/ Hide Gridlines:
    ExcelApp.ActiveWindow.DisplayGridlines := False; // ou True.

Ma question.
Si je ne veut pas visualier le Zero values.. je doive ecrire ?
ExcelApp.ActiveWindow.??????:=False;

Merci

signaler à un administrateur
Commentaire de ville007 le 22/05/2007 20:46:00

c'est bien fais
moi je cherche comment faire la sauvgarde de dbgrid comment un fichier XLS (excel).

signaler à un administrateur
Commentaire de guykoumba le 05/02/2008 15:44:04

Salut à tous.Le code est très interressant et ca marche chez moi.Mais j'essai d'utiliser la fonction AutoFilter pour filtrer une plage mais ja n'y arrive pas.Quelqu'un pourrait-il m'aider?

signaler à un administrateur
Commentaire de FeuerFrei118 le 30/06/2008 19:42:51

Bonjour! j'ai essayé votre code qui apres la compilation (en execution) fait des erreurs de violation. Pourriez-vous m'aidé?

J'utilise Excel 2007, windows vista et delphi7

Merci d'avance!

signaler à un administrateur
Commentaire de yvessimon le 01/07/2008 08:39:01

Bonjour,

Regarde avec windows 2000, cela fonctionne très bien

Salutations

signaler à un administrateur
Commentaire de FeuerFrei118 le 01/07/2008 08:57:38

Regarder avec win2000? Cet à dire?

Merci

signaler à un administrateur
Commentaire de yvessimon le 01/07/2008 09:03:14

Bonjour,
Soit tu installes windows 2000 sur ton pc
soit tu utilises un autre pc qui a windows 2000

Salutations

signaler à un administrateur
Commentaire de Migueldasilva le 09/10/2008 16:08:54 1/10

bonjour,
le code parait bien mais c'est quasiment illisible. Le code n'est pas indenté ou mal, ça ne compile pas sous D7, j'ai testé les manip pour le faire marcher sous cette version, ça compile mais sa plante Excel au lancement...
On ne peut distinguer les commentaires utiles des lignes de code mis en commentaire.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.