AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anzahl der Seiten in Excel festlegen

Ein Thema von Werwurm · begonnen am 9. Mär 2008 · letzter Beitrag vom 9. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2      
Werwurm

Registriert seit: 21. Apr 2003
Ort: Bremen
71 Beiträge
 
Delphi 2009 Professional
 
#1

Anzahl der Seiten in Excel festlegen

  Alt 9. Mär 2008, 00:33
Hallo,

ich bin am verzweifeln.
Aktuell hänge ich an einem Datenexport nach Excel.
Alles funktioniert soweit, jedoch kann ich nicht die Anzahl der genutzten Seiten festlegen.
Sowohl hier im Forum, über Google und auch im Excel Makro Rekorder stoße ich immer wieder auf die Zeile Excel.ActiveSheet.PageSetup.FitToPagesWide := 1; Jedoch passiert hierbei gar nichts. Ich bekomme keine Fehlermeldung vom Programm, aber auch in Excel passiert nichts (sichtbares).


Nun weiß ich nicht mehr weiter.

Zur Veranschaulichung hier ein kurzer Auszug aus dem Code:

Delphi-Quellcode:
procedure Export_nach_Excel;
Const
  xlBottom = -4107;
  xlLeft = -4131;
  xlRight = -4152;
  xlTop = -4160;

Var Excel: Variant;
    zeile, spalte, i, j, k, Spieler_Anz, Spiel_Anz, farbe : Integer;
    WBobj: olevariant;
    Dateiname, s : String;
begin
  try
    Screen.Cursor:=crHourGlass;
    Excel := CreateOleObject('Excel.Application');
  except
    ShowMessage('Excel konnte nicht gestartet werden!');
    Screen.Cursor:=crDefault;
    exit;
  end;

  Excel.Visible := False;
  WBobj:= Excel.Application.Workbooks.Add;
  Excel.Worksheets['Tabelle1'].Activate;
  Excel.Worksheets['Tabelle1'].Name:='Einzel';
  Excel.Worksheets['Tabelle2'].Delete;
  Excel.Worksheets['Tabelle3'].Delete;
  Dateiname:=DM.GetSpecialFolder(CSIDL_PERSONAL);
  If NOT Start.DirExists(Dateiname+'\Mannschaft\') then Start.create_dir(Dateiname+'\Mannschaft\');
  Dateiname:=Dateiname+'\Mannschaft\Statistik_'+FormatDateTime('yyyymmdd_hhmm', Now);

  //Excel Zellen werden gefüllt
   .
   .
   .
   .

  //Formatieren des Blattes
  Excel.ActiveSheet.PageSetup.PaperSize := 9; //A4

  Excel.ActiveSheet.PageSetup.Orientation := 2; //Landscape

  // Fit to X page(s) wide by Y tall
  Excel.ActiveSheet.PageSetup.Zoom := False;
  Excel.ActiveSheet.PageSetup.FitToPagesWide := 1;
  Excel.ActiveSheet.PageSetup.FitToPagesTall := 3;
  WBobj.Close (saveChanges:=True, FileName:=Dateiname);
  Excel.Quit;
  Screen.Cursor:=crDefault;

Weiß jemand Rat?
Gruß
Marcus
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Anzahl der Seiten in Excel festlegen

  Alt 9. Mär 2008, 06:29
Hallo, was für eine Excel Version verwendest du ?
Unter Excel 2002 funktioniert das FitToPagesWide.


Noch ein Tipp:
Excel.Worksheets['Tabelle1'].Activate; Tabelle1 heisst es nur in der deutschen Version. In der englischen z.B Sheet1.
Es ist also besser das Worksheet per Index anzusprechen.

Gib am Schluss den Speicher wieder frei:
Delphi-Quellcode:
  WBobj := Unassigned;
  Excel := Unassigned;
Thomas
  Mit Zitat antworten Zitat
Werwurm

Registriert seit: 21. Apr 2003
Ort: Bremen
71 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Anzahl der Seiten in Excel festlegen

  Alt 9. Mär 2008, 09:14
Hallo,

Danke für die beiden Tipps.
Ich werde es umsetzen.

Zitat von toms:
Hallo, was für eine Excel Version verwendest du ?
Unter Excel 2002 funktioniert das FitToPagesWide.
Ich habe es mit Excel 2003 und 2007 getestet.
Ältere Versionen habe ich nicht da.
Gruß
Marcus
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Anzahl der Seiten in Excel festlegen

  Alt 9. Mär 2008, 09:25
Hallo,

@Toms:
Zitat:
Noch ein Tipp:

Tabelle1 heisst es nur in der deutschen Version. In der englischen z.B Sheet1.
Es ist also besser das Worksheet per Index anzusprechen.
Werwurm hat doch den Namen von [Tabelle1] auf [Einzel] geändert.


@Werwurm:

Zitat:
Alles funktioniert soweit, jedoch kann ich nicht die Anzahl der genutzten Seiten festlegen.
Was meinst Du damit?


Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Werwurm

Registriert seit: 21. Apr 2003
Ort: Bremen
71 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Anzahl der Seiten in Excel festlegen

  Alt 9. Mär 2008, 09:34
Hallo Chemiker,

Zitat:
Alles funktioniert soweit, jedoch kann ich nicht die Anzahl der genutzten Seiten festlegen.
Zitat:
Was meinst Du damit?
Ich möchte den Ausdruck auf ein Blatt begrenzen.
Dafür kann man bei Excel den Zoom einstellen. Entweder auf einen festen Wert, auf die genutzten Seiten.
Ein fester Wert hilft mir aber nicht, da mein Export in Zeilen und Spalten variabel ist.

Deshalb möchte ich die Druckgröße auf 1 Hoch & 1 Seite Breit einstellen.
Gruß
Marcus
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Anzahl der Seiten in Excel festlegen

  Alt 9. Mär 2008, 10:04
Hallo Werwurm,

Zitat:
Deshalb möchte ich die Druckgröße auf 1 Hoch & 1 Seite Breit einstellen.
Im Delphi – Code stellst Du die Höhe aber auf 3 ein.

Excel.ActiveSheet.PageSetup.FitToPagesTall := 3; Ist es den möglich, die Einstellungen in Excel vorzunehmen und haben diese Einstellungen das gewünscht Ergebnis?


Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Werwurm

Registriert seit: 21. Apr 2003
Ort: Bremen
71 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Anzahl der Seiten in Excel festlegen

  Alt 9. Mär 2008, 10:20
Hallo Chemiker,

Zitat:
Im Delphi – Code stellst Du die Höhe aber auf 3 ein.

Excel.ActiveSheet.PageSetup.FitToPagesTall := 3;
Du hast natürlich Recht ich habe mit den Werten ein wenig rumgespielt, ob überhaupt irgendetwas funktioniert.
Da habe ich den Wert wieder vergessen auf "1" zurück zu setzen.
In meinem Code war es schon wieder korrigiert.



Zitat:
Ist es den möglich, die Einstellungen in Excel vorzunehmen und haben diese Einstellungen das gewünscht Ergebnis?
Ja das ist möglich.
Das ganze habe ich in Excel auch schon mit Makro Rekorder aufgenommen. Auch dort finde ich als Quelltext FitToPagesTall.
Mache ich das aber mit Delphi, greift es nicht.
Es kann eigentlich nur bei mir liegen, ich habe aber keine Ahnung wo.
Gruß
Marcus
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

Re: Anzahl der Seiten in Excel festlegen

  Alt 9. Mär 2008, 10:28
[quote="Chemiker"]Hallo,

@Toms:
Zitat:
Werwurm hat doch den Namen von [Tabelle1] auf [Einzel] geändert.
Aber zuerst spricht er es mit Tabelle1 an.
Excel.Worksheets['Tabelle1'].Activate;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Anzahl der Seiten in Excel festlegen

  Alt 9. Mär 2008, 10:54
Hallo.

@toms,

Du hast Recht, aber wenn der Name nicht Richtig ist, kommt eine Fehlermeldung „ungültiger Index“. Das kann also nicht das Problem sein.



@Werwurm:
also bei mir funktioniert Dein Code. Gut ich muss den Ausdruck mit der Lupe betrachten, aber er funktioniert.

Kannst Du es so einrichten, dass vor dem WBobj.close dir mal in der Seitenansicht ansiehst, ob die Skalierung nach Deinen Wünschen durchgeführt worden ist?

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#10

Re: Anzahl der Seiten in Excel festlegen

  Alt 9. Mär 2008, 11:09
Zitat von Chemiker:
Hallo.

@toms,

Du hast Recht, aber wenn der Name nicht Richtig ist, kommt eine Fehlermeldung „ungültiger Index“. Das kann also nicht das Problem sein.
Das mit dem Namen war nur eine Bemerkung nebenbei und hat natürlich nichts mit dem eigentlichen Problem zu tun.
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz