Danke für Eure Hilfe
Beiträge von smurf
-
-
Hi alpines,
nein den Bereich habe ich im Script nicht festgelegt da er ja schon in der Exceldatei festgelegt ist. Ich möchte den vom Ersteller gewählten Druckbereich übernehmen und dieser kann sich von Datei zu Datei ändern.
Zeitriss hat den Fehler gefunden, es liegt tatsächlich an dem Namenskonflikt zwischen Englisch und deutscher Version. Ich hab mir jetzt ein Work'around gebastelt mit dem es funktioniert.AutoItLocal $oXMLWorkbook = $oExcel.Workbooks.OpenXML($xlsFile) Local $MyPrintArea = $oXMLWorkbook.Sheets("MeinReiter").PageSetup.PrintArea $oXMLWorkbook.Close Local $oWorkbook = _Excel_BookOpen($oExcel, $xlsFile, True) $oWorkbook.Sheets("MeinReiter").Activate _Excel_Print($oExcel, $MyPrintArea,1,Default,Default,$printVon,$printBis)
Gruß
Smurf -
Hallo Zeitriss,
danke für den Tip, ich werde mir mal die links ansehen.
Zwischenzeitlich habe ich mit einem Kollegen noch was Probiert. Wenn wir dem Objekt vorher einen Bereich zuweisen, dann können wir es anschließend auch auslesen und ich bekomme auch das gewünschte Druckergebnis.AutoIt$oExcel.ActiveSheet.PageSetup.PrintArea = "A1:AK136" _Excel_Print($oExcel, $oExcel.ActiveSheet.PageSetup.PrintArea,1,Default,Default,$printVon,$printBis)
Gruß
Smurf -
Hallo,
hast du mal _ArraySearch versucht? Damit kannst du das Array durchsuchen und bekommst als Rückgabewert den Platz in deinem Array oder -1 wenns nicht im Array gefunden wurde.
Mit _ArrayAdd kannst du dann den fehlenden Eintrag dem Array hinzufügen.
Mit _FileWriteFromArray kannst du das Array in eine Datei schreiben. Dabei wird die vorhandene Datei überschrieben oder wenn du einen neuen Dateinamen angibst eine neue Datei erstellt.Gruß
Smurf -
Hallo zusammen,
vielleicht hat jemand die zündende Idee für mich oder kann mir sagen was ich falsch mache.
Ich möchte wie der Titel schon sagt eine Exceldatei öffnen und vom Aktiven Sheet ein Ausdruck machen. Soweit kein Problem. In diesen Sheets ist aber ein Druckbereich vordefiniert. Und dieser wird ignoriert.
Ich habe es erst mit der Funktion _Excel_Print probiert. Aber da wird der in der Exceldatei vorgegebene Bereich ignoriert. Dann habe ich versucht alla Tastaturmakro die Excel eigene Printfunktion zu benutzen und mit Strg+P das Fenster geöffnet und gedruckt. Ergebnis dasselbe. Führe ich dies von Hand aus klappts.Jetzt würde ich gerne den Druckbereich auslesen um diesen der _Excel_Print übergeben zu können. Aber wenn ich:
AutoIt
Alles anzeigenFunc PrintExlFile($xlsFile, $pdfFile) ; Create application object and open an example workbook Local $oExcel = _Excel_Open() If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_Print Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended) Local $oWorkbook = _Excel_BookOpen($oExcel, $xlsFile, True) If @error Then MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_Print Example", "Error opening workbook '" & @ScriptDir & "\Extras\_Excel4.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended) _Excel_Close($oExcel) Exit EndIf ; ***************************************************************************** ; Print range A1:B3 of the active worksheet to the default printer. ; ***************************************************************************** $oWorkbook.Sheets("MeinSheet").Activate MsgBox(1,"PrintArea",$oExcel.ActiveSheet.PageSetup.PrintArea) _Excel_Print($oExcel, $oExcel.ActiveSheet.PageSetup.PrintArea,1,Default,Default,$printVon,$printBis)
ausführe bekomme ich nicht den Bereich angezeigt, sondern er scheint den Bereich zu überschreiben. Wenn ich dann aufs Excel klicke und mir dort den Bereich anzeigen lasse ist dieser wirklich leer. Schließe ich die Datei ohne zu speichern und öffne sie wieder kann ich sehen das definitiv ein Druckbereich angegeben ist.
Was mache ich falsch beim auslesen des Druckbereichs? Es ist doch ein property. Kann ich das nicht einfach auslesen?
Die MSDN Seite von PrintArea
Ein Post hier aus dem Forum bei dem PrintArea beschrieben wird...Gruß
Smurf