![]() |
Anzahl der Seiten in Excel festlegen
Hallo,
ich bin am verzweifeln. :wall: 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
Delphi-Quellcode:
Jedoch passiert hierbei gar nichts. Ich bekomme keine Fehlermeldung vom Programm, aber auch in Excel passiert nichts (sichtbares).
Excel.ActiveSheet.PageSetup.FitToPagesWide := 1;
Nun weiß ich nicht mehr weiter. :gruebel: 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? |
Re: Anzahl der Seiten in Excel festlegen
Hallo, was für eine Excel Version verwendest du ?
Unter Excel 2002 funktioniert das FitToPagesWide. Noch ein Tipp:
Delphi-Quellcode:
Tabelle1 heisst es nur in der deutschen Version. In der englischen z.B Sheet1.
Excel.Worksheets['Tabelle1'].Activate;
Es ist also besser das Worksheet per Index anzusprechen. Gib am Schluss den Speicher wieder frei:
Delphi-Quellcode:
WBobj := Unassigned;
Excel := Unassigned; |
Re: Anzahl der Seiten in Excel festlegen
Hallo,
Danke für die beiden Tipps. Ich werde es umsetzen. Zitat:
Ältere Versionen habe ich nicht da. |
Re: Anzahl der Seiten in Excel festlegen
Hallo,
@Toms: Zitat:
@Werwurm: Zitat:
Bis bald Chemiker |
Re: Anzahl der Seiten in Excel festlegen
Hallo Chemiker,
Zitat:
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. |
Re: Anzahl der Seiten in Excel festlegen
Hallo Werwurm,
Zitat:
Delphi-Quellcode:
Ist es den möglich, die Einstellungen in Excel vorzunehmen und haben diese Einstellungen das gewünscht Ergebnis?
Excel.ActiveSheet.PageSetup.FitToPagesTall := 3;
Bis bald Chemiker |
Re: Anzahl der Seiten in Excel festlegen
Hallo Chemiker,
Zitat:
Da habe ich den Wert wieder vergessen auf "1" zurück zu setzen. In meinem Code war es schon wieder korrigiert. Zitat:
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. |
Re: Anzahl der Seiten in Excel festlegen
[quote="Chemiker"]Hallo,
@Toms: Zitat:
Delphi-Quellcode:
Excel.Worksheets['Tabelle1'].Activate;
|
Re: Anzahl der Seiten in Excel festlegen
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 |
Re: Anzahl der Seiten in Excel festlegen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz