begin process at 2010 02 10 12:37:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Exécution

 > 

Exécution programme hors Environnement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Exécution programme hors Environnement

lundi 15 juin 2009 à 17:46:34 | Exécution programme hors Environnement

couf

Membre Club
Bonjour Les amis

j'ai le programme suivant

program excel;

{$APPTYPE CONSOLE}

uses

   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,comobj, ExtDlgs, StdCtrls,strutils,shellapi,inifiles,comini;


var
chimg,chrep,nblig, celprod, Vinttostr,Nonmcel :string;
vcellimage,vfont,vCell,vcellfusion,vWorksheet,vXLWorkbook, vMSExcel,vXLWorkbooks,vMS1Excel : variant;
 avalue, arange,aSheetName ,vFileName : AnsiString;
r, i,rom: integer;
 d : real;
 FileIni  : TIniFile;

begin
try
 fileIni:= Tinifile.Create('C:\infoc\Xcel.ini');
 chrep:=fileini.ReadString('chemin','repoting','')  ;
 chimg:=fileini.ReadString('chemin','image','');
 finally


end;
  { TODO -oUser -cConsole Main : Insert code here }
   rom:=67;
  vMSExcel := CreateOleObject('Excel.Application');
    vMSExcel.Visible := true;
    vFileName := chrep;
    vXLWorkbooks := vMSExcel.Workbooks;
    vXLWorkbook := vXLWorkbooks.Open(vFileName);
    aSheetName := ' Reporti';
    vWorksheet := vXLWorkbook.WorkSheets[aSheetName];
    //insertion de 4 lignes


    //nombre de ligne utilisées
    i:= vworksheet.usedrange.rows.count  ;
    nblig:=inttostr(i);
    // écriture  2 ligne en Bas
     Vinttostr:= inttostr(i+2);
     for r := 0 to 5 do
      begin
      // rom c'est la valeur numérique du caractère ascii
      rom:=rom+1;
     celprod := char(rom) + nblig;
      aRange := char(rom)+Vinttostr;
    vCell := vWorksheet.Range[aRange];
    //mise en forme résultat
    vcell.font.bold:=true;
    //Taille police
    vcell.font.size:='13';
    //interieur cellule     en gris
    {
# 'Aqua => 8, 28, 33, 34, 42
# 'Black =)> 1, 51, 52
# 'Blue =)> 5, 32, 41, 49
# 'Fuchsia =)> 7, 26
# 'Gray =)> 16, 46, 47, 48, 56
# 'Green =)> 10, 43
# 'Lime =)> 4
# 'Maroon =)> 9, 30, 53
# 'Navy =)> 11, 25, 55
# 'Olive =)> 12, 44, 45
# 'Purple =)> 13, 18, 21, 29, 54
# 'Red =)> 3
# 'Silver =)> 15, 17, 20, 22, 24, 35, 36, 37, 38, 39
# 'Teal =)> 14, 23, 31, 50
# 'White =)> 2, 19, 40
# 'Yellow =)> 6, 27 }
    vcell.interior.colorIndex:=16;
   // vcell.formula:='=sum(A1:A3)';
   //somme
      aValue := '=sum('+ char(rom)+'2:'+ celprod +')';
    vCell.Value := aValue;




     end   ;
     // fusion des 3 premières cellules
     vcellfusion:=vworksheet.Range[char(65)+Vinttostr,char(67)+Vinttostr] ;
    vcellfusion.merge(FALSE);
    //Mise en gras et taille police
    vcellfusion.font.bold:=true;
    vcellfusion.font.size:='12';
    vcellfusion.value:='TOTAL'   ;
    vcellfusion.interior.colorIndex:=3;
    //alignement des valeurs
    {xlRight = -4152
    xlLeft = -4131
    xlCenter = -4108
    xlJustify = -4130}
    vcellfusion.HorizontalAlignment:= -4108;
      {arange:='E29';
      vCell := vWorksheet.Range[aRange];
      vcell.value:=i;  }
   //Insertion lignes
      vcell:=vworksheet.Cells.Item[1,1]  ;

    vcell.EntireRow.Insert;
    vcell.EntireRow.Insert;
    vcell.EntireRow.Insert;
    vcell.EntireRow.Insert;




    // Insertion d'une image  en haut

    vcellimage:=vworksheet.range['A1'];
  vWorksheet.Pictures.Insert(chimg).Select;
  vMSExcel.Selection.Top:=1;
  vMsExcel.selection.left:=1;
  // Mise en forme  largeur (width) hauteur (height)
  vmsexcel.selection.width:= 96;
  vmsexcel.selection.height :=   40  ;
  // fusion des 3 premières lignes
   vcellfusion:=vworksheet.Range['A1','I4'] ;
    vcellfusion.merge(FALSE);

   //saugarde du travail et on quitte l'instance
     vXLWorkbook.Save;
    vMSExcel.Quit;
    vMSExcel := unassigned;


    {'CoInitialize has not been called'}
end.


Le Problème me direz vous ?
Il s'execute parfaitement sur mon PC (windows XP)
j'ai l'image ou je veux etc etc.....
 Lorsque je l'exécute sur le PC cible (windows 2000 mais même version du pack office) avec des droits administrateur , en ayant pris soin de bien copier comini dans le même répertoire d'exécution bin ......... il ouvre juste mon fichier excel , et puis rien ne se passe.
Auriez vous une idée s'il vous plait de ce que j'aurais pu oublier?

Merci d'avance

couf
lundi 15 juin 2009 à 22:23:58 | Re : Exécution programme hors Environnement

cantador

Membre Club
bonsoir,
idée :
si comini est une unité, il faut l'ajouter au projet et non copier le .pas..

cantador
mardi 16 juin 2009 à 11:31:42 | Re : Exécution programme hors Environnement

couf

Membre Club
Merci Cantador

  j'avais bien mis l'unité
en désespérance de cause hier soir  j'ai recompilé avec Delphi 7
qui ma de suite mis en avant une erreur Eole (que je n'ai pas avec la version 2005)

méthode font.bold non comprise
je pense que cela doit venir de là, je vais plutôt chercher dans ce sens.

couf
mardi 16 juin 2009 à 14:24:19 | Re : Exécution programme hors Environnement

couf

Membre Club
Re,

  Effectivement
J'ai commenté ces 2 lignes

vcell.font.bold:=true;

vcellfusion.font.bold:=true;

Et là mon programme s'excécute mais ma dernière ligne n'est plus en gras

quelqu'un aurait une idée à me soumettre s'il vous plait?

par quoi pourrais je remplacer font.bold?
mardi 16 juin 2009 à 22:03:51 | Re : Exécution programme hors Environnement

Bacterius

Membre Club
Si ce sont des objets TFont Windows, alors c'est Font.Style := Font.Style + [bsBold];
Si il s'agit d'un objet fonte COM, alors je ne sais pas ...

Cordialement, Bacterius !
mardi 16 juin 2009 à 22:42:22 | Re : Exécution programme hors Environnement

cantador

Membre Club

Font.Style := Font.Style + [bsBold];

je ne crois pas que ça soit un tableau sinon, il y aurait un plantage...

cantador

mardi 16 juin 2009 à 22:54:45 | Re : Exécution programme hors Environnement

Bacterius

Membre Club
Ce n'est pas un tableau, un ensemble (set of TFontStyle) non ?

Cordialement, Bacterius !
mercredi 17 juin 2009 à 10:00:48 | Re : Exécution programme hors Environnement

cantador

Membre Club
pour moi, c'est la même chose..
mais ça ne marche pas ici, car si l'écriture
vcellfusion.font.bold:=true;
était fausse, le compilo ne la prendrait pas
or d'après couf, ça compile..
ici, on est en en système OLE
(vMSExcel := CreateOleObject('Excel.Application');)
c'est-à-dire on pilote EXCEL avec delphi

donc il faut trouver autre chose..

cantador
mercredi 17 juin 2009 à 18:17:35 | Re : Exécution programme hors Environnement

couf

Membre Club
Bonjour

  J'ai donc essayé
vcellfusion.font.fontstyle  :='bold';
cela ne plante pas fonctionne bien sur mon PC
mais arrivé sur le serveur  cette fois mon programme se déroule normalement
sauf que les cellules ne se mettent pas en gras
Autre chose je ne sais pas si cela vien de ma version d'excel
pour mettre en gras une cellule  sans passer par mon programme
j'ai du passer par cette manip

http://support.microsoft.com/kb/966565/fr
maintenant une question supplémentaire
le fait d'écrire
vcellfusion.font.underline:= 'xlUnderlineStyleSingle';
ne compile pas me renvoie un message d'erreur
Méthode 'selection' not supported by automation.

couf
mercredi 17 juin 2009 à 19:12:56 | Re : Exécution programme hors Environnement

cantador

Membre Club

vcellfusion.font.fontstyle  :='bold';
non, çà j'y crois pas, tu ne peux pas mettre du texte...
essaie ce code :
vcellfusion:=vworksheet.Range[char(65)+Vinttostr,char(67)+Vinttostr].select;

cantador


1 2

Cette discussion est classée dans : rom, vcell, vmsexcel, vcellfusion, vworksheet


Répondre à ce message

Sujets en rapport avec ce message

comment "locker" le tiroir d'un cd-rom en delphi sous XP [ par hendrix ] Bonjour à tous,Je cherche du code en delphi pour empêcher l'ouverture d'un lecteur de CD-rom sous windows XP.Je cherche également du code en delphi p Detection mac/pc [ par noya ] Bonjour,je suis en train de developper un cd-rom en flash, et je me demandais s'il etait possible par une quelconque appli (ici delphi) de savoir s'il plage de cellules sélectionnée dans EXCEL [ par flor003 ] salut tout le monde ! Bon j'ai un petit soucis. Je chercher à récupérer une plage de cellules sous Excel que j'ai sélectionné préalablement avec la s pb de sauvegarde sous excel [ par othland ] salut tout le monde!je pilote excel à partir d'une application, j'ouvre mon fichier excel et je le ferme comme suit :////////////////var    vMSExcel, Comment graver les CD/DVD ROM avec Delphi [ par yokochimada ] Salut tout le mondeJe souhaite mettre au point une application de gravure des CD/DVD avec Delphi, mais je ne sais pas comment m'y prendre..ma question VTOC virtuelle [ par KIMI1632 ] Kimi1632salut, je voudrait simuler la présence d' CD/DVD dans mon lecteur qui bloque s'il est vide,  voilà a quoi je pense 1- faire une routine qui éc control l'accer au disquette ou CD-Rom [ par street8178 ] j'ai un petite question: comment controler l'accer au disquette ou CD-Rom merci Pilotage de Excel [ par jnmchl ] Bonjour,J'ai un petit problème avec mon application qui génère des fichier Excel.En fait tout fonctionne parfaitement, par contre mon appli génèrait e Tableau croisé dynamique [ par couf ] Bonjour à Tous  Je viens encore solliciter votre aide, et remercie quiconque voudra bien se pencher sur mon code Je tiens à dire que la recherche fran


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,217 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales