Makro Fehlermeldung

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

felix
***
Beiträge: 54
Registriert: Di, 20.03.2007 17:09
Kontaktdaten:

Makro Fehlermeldung

Beitrag von felix »

Hallo,

ich habe ein Makro zusammen gebastelt. Das funktioniert auch sehr gut. Bis auf das, dass beim vorletzten Schritt eine Meldung kommt. Der Schritt ist das Drucken. Gedruckt wird der vorher erstellte Druckbereich. Allerdings kommt hallt immer diese Meldung (siehe Anhang).

weiß da jemand rat?

Code: Alles auswählen

 Dim iAntwort As Integer	'Auftrag ausführen?
 iAntwort = MsgBox("Briefumschläge bedrucken?", 52, "Drucken")
 If iAntwort = 7 Then
 End
 else iAntwort = 6 
 end if
 
 call AdressIndex	'kopieren Adressen Index
  
 Dim oCell as Object, s as String	'Anzahl Briefumschläge
 oCell = ThisComponent.sheets(1).getCellRangeByName("C39")
 s = ocell.Value
 
 call A38	'Sprung A38

 Dim i%, a$ 'Beginn Schleife
 For i = 1 to  s  step 1
 
 'Dieser Teil wird s mal durchlaufen  
  
 call Naechste	'nächste beschriebene Zelle
    
 call AktuelleZelle   'kopiert Inhalt Aktuelle Zelle
  

 Dim oDoc as Object, osheet as Object                      'Druckbereich festlegen (Seite 356 Makros in OO)
 Dim oDrBereich as Object, oDrB as object
 Dim aDruckbereiche(0)
 oDoc = thisComponent
 oSheet = oDoc.sheets(1)
 oDrBereich = osheet.getCellRangeByName("A1:H19").rangeAddress 
 aDruckbereiche(0) = oDrBereich
 oSheet.setPrintAreas(aDruckbereiche())
 aDruck = oSheet.getPrintAreas()		

 
 Dim arg(0) as new com.sun.star.beans.PropertyValue	'Drucken (Seite 223 Makros in OO)
 arg(0).name = "Pages"
 arg(0).value = "1"
 thisComponent.print(arg())
 
 
 Next i

 MsgBox "Bedruckte Briefumschläge: " +  s ,0,"ENDE"
PS. wenn ich den Druck-Teil seperat als eigenes Makro ausführe bekomme ich diese Meldung nicht.

MfG Felix
Drucken.ZIP
(39.76 KiB) 35-mal heruntergeladen
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Makro Fehlermeldung

Beitrag von Toxitom »

Hallo Felix,

in Calc definierst du die Druckbereiche über den Weg, den du ja auch gehst. Beim Printbefehl selbst gibst du keine Seiten an - hier wird einfach ein leeres Array Übergeben. Gedruckt werden alle definierten Druckbereiche aller Seiten! Also, da musst du selbst für Sorge tragen - bei der Definition er Druckbereiche. So war es bisher.

Ab der 2.3 könnte es Änderungen gegeben haben - das weiss ich noch nicht, das müsste ich mal ausprobieren. In der UI ist es nämlich jetzt auch so, dass man "Seiten" auswählen kann - zum Drucken.

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
felix
***
Beiträge: 54
Registriert: Di, 20.03.2007 17:09
Kontaktdaten:

Re: Makro Fehlermeldung

Beitrag von felix »

Hallo,

erstaml danke für die Antwort.

was muss ich denn dann als Druckbefehl schreiben?

das mit den Seiten angeben funktioniert in einer andren Datei wunderbar.


Das Makro hat folgenden Hintergrund. Ich habe ein Tabellenblatt in welchem ich Adressen gespeichert habe. Nun kann ich bestimmte Adressen auswählen in dem ich ein "X" in die letzte Spalte schreibe. Jede adresse hat einen Index. Nun kommt das Makro zum einsatz.

Diese Index(mehrzahl????) werden kopiert in Tab2:A39.
zuerst wird der Courser in Zelle A38 positioniert dann die 1. "befüllte" Zelle ausgelesen und der Wert kopiert in Zelle D39
dann der Druckbereich definiert und die Seite gedruckt. Dann wird die Schleife wieder durchlaufen, bis halt der Endwert der Schleife erreicht ist.

Das ganze dient dazu um Briefumschläge zu drucken.

Mir ist folgendes aufgefallen:

Wenn nur eine Adresse ausgewählt ist läuft das Makro von Oben super.
Sind mehr wie eine Adresse ausgewählt kommt es zur besagten Meldung.

MfG Felix
Antworten