[GELÖST] Makro Schleife zur automatischen Rechnungs Erstellung

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [GELÖST] Makro Schleife zur automatischen Rechnungs Erstellung

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von Hiker » Mo, 13.06.2022 07:42

MASP47 hat geschrieben: Mo, 06.06.2022 20:31 ... Kann ich damit auch einfach nur das Verschicken der Rechnungen an die entsprechenden Empfänger per Mail automatisieren?
...
Ein Serienbrief erzeugt ein Individualisierbares Dokument pro Datensatz oder hängt diese hintereinander (damit sie nicht einzeln gedruckt werden müssen). In Deinem Fall müsste man ein Variables Attachment einbinden, was ich bisher nicht gesehen habe. Das dürfte sich schneller z.B. in Thunderbird lösen lassen (mailmerge-plugin).

Ich würde aber tatsächlich einen separaten Thread für eine solche Frage empfehlen. Du kannst ja einen Link auf diesen Threadsetzen um den Hintergund zu erklären.

J.

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von MASP47 » Mo, 06.06.2022 20:31

Karolus hat geschrieben: Mo, 06.06.2022 11:21 Hallo
Ich denke du solltest das ganze mit einem Serien-druck-Dokument in Writer erschlagen!
Hallo noch mal, Karolus!

Dein Vorschlag könnte mir vielleicht bei einem anderen Problem helfen. Kann ich damit auch einfach nur das Verschicken der Rechnungen an die entsprechenden Empfänger per Mail automatisieren?

Oder gehört das Thema dann in einen anderen thread?

Liebe Grüße
Andi

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von MASP47 » Mo, 06.06.2022 18:53

Wahnsinn! Das war's! Vielen vielen Dank mikeleb!

Es funktioniert jetzt alles wie geschmiert und genau so, wie ich es wollte. :) Danke auch den anderen Mitpostern! :)

Liebe Grüße,
Andi

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von MASP47 » Mo, 06.06.2022 14:48

Hey,
wie gesagt, das stammt alles von meinem Vorgänger in der Firma, aber den kann ich leider nicht mehr fragen.
Ich probier später einfach mal die Zeile wegzulassen.
Danke derweil und LG
Andi

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von mikeleb » Mo, 06.06.2022 14:14

Hallo,
ganz am Anfang der sub RechnungFahrten rufst du den Eingenschaftendialog auf:

Code: Alles auswählen

dispatcher.executeDispatch(document, ".uno:SetDocumentProperties", "", 0, Array())
Warum?

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von MASP47 » Mo, 06.06.2022 14:08

Hey Mikeleb,
danke für deine schnellen Rückmeldungen!

Ich hab echt schon ein bisschen ein Makro Chaos bei mir.. :lol: Ich hab den gesamten Code jetzt durchgesehen und nichts gefunden:

Code: Alles auswählen

REM  *****  BASIC  *****

OPTION EXPLICIT


'***********************************************************************************************

sub RechnungFahrten


rem ----------------------------------------------------------------------
rem define variables
 dim oDoc as object
 dim Sheets as object 
 dim Sheet as object
 dim Cell as object
 dim CellHerba as object
 dim CellFahrt as object
 dim document   as object
 dim dispatcher as object 
 
 dim url_of_ods_document as String  	' the URL of this document
 dim doc_path as String					' the URL of this document without the full filename
 
 dim pdf_url as String					' the URL of pdf document
 dim FileName as String 				' the PDF filename from a cell
 dim FileNameWithExtension as String 	' the full filename of PDF document

 dim i as integer
 dim len_url as integer 				' the length of URL
 dim sep_char_pos as integer 			' position of the next "/" separator of URL
 dim last_sep_pos as integer 			' position of the last "/" separator of URL
oDoc = ThisComponent
oDoc.lockControllers()
oDoc.addActionLock()
rem ----------------------------------------------------------------------


rem get access to the document
 document   = ThisComponent.CurrentController.Frame
 dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SetDocumentProperties", "", 0, Array())



'Get pdf filename and combine with URL of this document

Sheet = odoc.currentcontroller.activesheet

'dim args77(0) as new com.sun.star.beans.PropertyValue
'args77(0).Name = "Nr"

'if args77(0).value= 1 then
'	Sheet = Sheets.getByName("Rechnung erstellen")  'change this to your sheet name
'else
'	Sheet = Sheets.getByName("Rechnung erstellen")  'change this to your sheet name
'end if

CellHerba = Sheet.getCellRangeByName("Q3")
CellFahrt = Sheet.getCellRangeByName("S4")

if cellFahrt.string = "ja" then

	Cell = Sheet.getCellRangeByName("X10")  'change this to the cell that has the file name

else

	Cell = Sheet.getCellRangeByName("W10")
	
end if

FileName = Cell.String
FileNameWithExtension = Filename + ".pdf"


url_of_ods_document =(ThisComponent.getURL())
len_url = len(url_of_ods_document)
i=1

Back:
	sep_char_pos = InStr(i, url_of_ods_document, "/", 1) 'maybe better solution to use a "do" cycle, not "goto"
	if (sep_char_pos <> 0) then
		i=sep_char_pos+1
	 	goto Back 
	else 
		last_sep_pos = i-1
	end if
	 
doc_path = left(url_of_ods_document, last_sep_pos)
pdf_url = doc_path + FileNameWithExtension



'Set print area
'if odoc.currentcontroller.activesheet.name = "Fahrtenübersicht erstellen" then
call druckberentfAlles()
call Alleseinblenden()

if cellFahrt.string = "nein" then
	
	call druckberRechnung
	
end if

if cellFahrt.string = "ja" then	
	
	call durchberBeides()
	call standardfilter()

end if
	
if cellHerba.string = "Herba" then

	call druckberentfAlles()
	call Alleseinblenden()
	call druckBeReHe()
	call standardfilter()

end if
'Export to pdf


Dim args18(2) as new com.sun.star.beans.PropertyValue
	args18(0).Name = "URL"	
	args18(0).Value = pdf_url
	args18(1).Name = "FilterName"
	args18(1).Value = "calc_pdf_Export"
	dim aFilterData(0) as new com.sun.star.beans.PropertyValue
	aFilterData(0).Name = "Selection"
	aFilterData(0).Value = ThisComponent.CurrentController.ActiveSheet
	args18(2).Name = "FilterData"
	args18(2).Value = aFilterData()
	ThisComponent.storeToUrl(args18(0).value,args18())



'back to normal view

rem ----------------------------------------------------------------------
dim args16(0) as new com.sun.star.beans.PropertyValue
args16(0).Name = "NormalViewMode"
args16(0).Value = true

dispatcher.executeDispatch(document, ".uno:NormalViewMode", "", 0, args16())

rem ----------------------------------------------------------------------
'dim args17(0) as new com.sun.star.beans.PropertyValue
'args17(0).Name = "Nr"
'args17(0).Value = 3

'dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args17())

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$Q$3"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
oDoc.removeActionLock()
oDoc.unlockControllers()

end sub

sub addHerba
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$5403:$K$5435"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:AddPrintArea", "", 0, Array())


end sub

Sub druckberentfAlles
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 1

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DeletePrintArea", "", 0, Array())
End Sub

Sub Alleseinblenden
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "C56:N5403"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ShowRow", "", 0, Array())
End Sub

sub durchberBeides
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1:$K$5403"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DefinePrintArea", "", 0, Array())
end sub

Sub standardfilter
 dim suchName as String
 dim Cell as variant
 dim CellHer as object
 dim oDok as object
 dim oDatenSheet as object
 dim oBereichAlleDaten as object
 dim oFilterBeschreib as object
 dim oFilterFeld as object
'(1)
' Dokument
oDok = ThisComponent

' Tabellenblatt mit Daten
oDatenSheet = _
 oDok.getSheets().getByName( "Rechnung erstellen" )


' Bereich
oBereichAlleDaten = _
 oDatenSheet.getCellRangeByName( "C64:N5400" )


'(2)
' FILTER erstellen
oFilterBeschreib = _
 oBereichAlleDaten.createFilterDescriptor ( TRUE )
      
Cell = oDatenSheet.getCellRangeByName("Q3")  'change this to the cell that has the file name 
suchName = Cell.String

oFilterFeld = _
 createUnoStruct( "com.sun.star.sheet.TableFilterField" )
With oFilterFeld
 .Field = 10 ' Spalte M
 .Operator = com.sun.star.sheet.FilterOperator.EQUAL
 .StringValue = suchName
End With


' Feld auf Filter anwenden
oFilterBeschreib.setFilterFields( Array( oFilterFeld ) )

' Filter auf Datenbereich anwenden
oBereichAlleDaten.filter( oFilterBeschreib ) 

If Cell.String = "Herba" then
	call VersteckeZeilen
End if

end sub

sub druckberRechnung
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1:$K$54"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DefinePrintArea", "", 0, Array())


end sub

sub druckBeReHe

rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1:$K$5424"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DefinePrintArea", "", 0, Array())
end sub

sub AllesAusblenden
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "C64:N5400"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:HideRow", "", 0, Array())
End Sub

sub VersteckeZeilen
Dim doc as object
Dim sheet as object
Dim Range as object
doc = ThisComponent
sheet = doc.CurrentController.ActiveSheet
range = sheet.getCellRangeByName("A57:K5403")
range.Rows.isVisible = False
end sub

sub FahrtenAktual
dim oDoc as object

oDoc = ThisComponent
oDoc.lockControllers()
oDoc.addActionLock()

call ZeigeZeilen
call Alleseinblenden()
call standardfilter()

oDoc.removeActionLock()
oDoc.unlockControllers()
end sub

Sub ZeigeZeilen
Dim doc as object
Dim sheet as object
Dim Range as object
doc = ThisComponent
sheet = doc.CurrentController.ActiveSheet
range = sheet.getCellRangeByName("A57:K5403")
range.Rows.isVisible = True
End Sub


sub EinsHoch
dim oZelle
oZelle = ThisComponent.Sheets.getByName( "Rechnung erstellen" ).getCellRangeByName( "P03" )
oZelle.Value = oZelle.Value + 1 

call RechnungFahrten
end sub
Ich hab noch andere Makro Module in der Datei, aber ich glaub auf die greift dieses nicht zu.

Werd am Abend weiterprobieren!

Danke vorerst!

LG Andi

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von mikeleb » Mo, 06.06.2022 13:54

Hallo,
der eigentliche pdf-Export erfolgt durch folgenden Teil

Code: Alles auswählen

Dim args18(2) as new com.sun.star.beans.PropertyValue
	args18(0).Name = "URL"	
	args18(0).Value = pdf_url
	args18(1).Name = "FilterName"
	args18(1).Value = "calc_pdf_Export"
	dim aFilterData(0) as new com.sun.star.beans.PropertyValue
	aFilterData(0).Name = "Selection"
	aFilterData(0).Value = ThisComponent.CurrentController.ActiveSheet
	args18(2).Name = "FilterData"
	args18(2).Value = aFilterData()
	ThisComponent.storeToUrl(args18(0).value,args18())
Dabei erschient kein Dialog (teste diesen Teil einfach mal allein).
Der Dialog muss durch einen weiteren Aufruf irgendwo in in deinem Makro erfolgen ...

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von MASP47 » Mo, 06.06.2022 13:32

Danke Mikeleb,
hab ich probiert! Allerdings ist alles unverändert - die Rechnungserstellung funktioniert, aber es poppt nach wie vor der Dialog 'Eigenschaften von "Abrechnungsdatei"' auf, den man mit OK bestätigen muss.
LG

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von mikeleb » Mo, 06.06.2022 13:18

Hallo,
da ist einiges durcheinander. Wirf' die Hälfte weg und lass nur folgendes übrig:

Code: Alles auswählen

'Export to pdf


Dim args18(2) as new com.sun.star.beans.PropertyValue
	args18(0).Name = "URL"	
	args18(0).Value = pdf_url
	args18(1).Name = "FilterName"
	args18(1).Value = "calc_pdf_Export"
	dim aFilterData(0) as new com.sun.star.beans.PropertyValue
	aFilterData(0).Name = "Selection"
	aFilterData(0).Value = ThisComponent.CurrentController.ActiveSheet
	args18(2).Name = "FilterData"
	args18(2).Value = aFilterData()
	ThisComponent.storeToUrl(args18(0).value,args18())



'back to normal view

rem ----------------------------------------------------------------------
dim args16(0) as new com.sun.star.beans.PropertyValue
args16(0).Name = "NormalViewMode"
args16(0).Value = true

dispatcher.executeDispatch(document, ".uno:NormalViewMode", "", 0, args16())

rem ----------------------------------------------------------------------
'dim args17(0) as new com.sun.star.beans.PropertyValue
'args17(0).Name = "Nr"
'args17(0).Value = 3

'dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args17())

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$Q$3"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
oDoc.removeActionLock()
oDoc.unlockControllers()

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von MASP47 » Mo, 06.06.2022 13:12

Hallo Mikeleb!

Danke für deine Rückmeldung!

Also das is ein Teil des Codes aus dem Makro zum PDF Export:

Code: Alles auswählen

'Export to pdf

rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "URL"
args2(0).Value = pdf_url 'This is equals to path and needed filename with "pdf" extension; but it is in URL format 
args2(1).Name = "FilterName"
args2(1).Value = "calc_pdf_Export"
args2(2).Name = "FilterData"
args2(2).Value = Array(_
Array("UseLosslessCompression",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("ReduceImageResolution",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("UseTaggedPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("ExportBookmarks",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("ExportFormFields",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("ExportLinksRelativeFsys",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("DocumentOpenPassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("PermissionPassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),_
Array("",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))

Dim args18(2) as new com.sun.star.beans.PropertyValue
	args18(0).Name = "URL"	
	args18(0).Value = pdf_url
	args18(1).Name = "FilterName"
	args18(1).Value = "calc_pdf_Export"
	dim aFilterData(0) as new com.sun.star.beans.PropertyValue
	aFilterData(0).Name = "Selection"
	aFilterData(0).Value = ThisComponent.CurrentController.ActiveSheet
	args18(2).Name = "FilterData"
	args18(2).Value = aFilterData()
	ThisComponent.storeToUrl(args18(0).value,args18())
dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args18())



'back to normal view

rem ----------------------------------------------------------------------
dim args16(0) as new com.sun.star.beans.PropertyValue
args16(0).Name = "NormalViewMode"
args16(0).Value = true

dispatcher.executeDispatch(document, ".uno:NormalViewMode", "", 0, args16())

rem ----------------------------------------------------------------------
'dim args17(0) as new com.sun.star.beans.PropertyValue
'args17(0).Name = "Nr"
'args17(0).Value = 3

'dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args17())

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$Q$3"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
oDoc.removeActionLock()
oDoc.unlockControllers()
Der Code stammt noch von meinem Vorgänger, den ich aber leider nicht mehr fragen kann. Aber ich glaube nicht, dass der das Makro 'nur' aufgezeichnet hat.

Unmittelbar davor werden per Filter die entsprechenden Positionen der Rechnung(snummer) zugewiesen und der Druckbereich festgelegt. Danach kommt eben dieser Code.

Danke noch mal!

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von MASP47 » Mo, 06.06.2022 12:59

Hallo Jasch,
danke für den Tipp!
Ggf werde ich das machen, aber vielleicht schaff ich es davor noch, das Aufpoppen des Eigenschaften Dialogs zu verhindern. R meinte ja, dass das möglich ist.
LG Andi

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von mikeleb » Mo, 06.06.2022 12:50

Hallo,
Das einzige Problem ist noch der aufpoppende Eigenschaften Dialog
Wie sieht denn dein Makro zum pdf-Export aus? Ich vermute mal, dass es auf den Dispatcher zugreift (aus einer Makroaufzeichnung?). Um dies zu ändern müsste man wissen, was konkret als pdf exportiert werden soll.

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von jasch » Mo, 06.06.2022 12:35

Hallo Andi,
Dokument hochzuladen! Das Problem ist, dass hier sehr viele sensible Daten verarbeitet werden, die ich nicht alle unkenntlich machen kann.
Hier schreibt Gast Peter wie das in einem Rutsch machbar ist:
http://www.oooforum.de/viewtopic.php?p= ... b7#p272806

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von MASP47 » Mo, 06.06.2022 12:00

Hey,
danke für eure Rückmeldungen!

Das mit dem Serienbrief ist eine gute Idee, aber in meinem Fall wohl nicht gut durchführbar. Pro Abrechnung müssen tausende Positionen den unterschiedlichen Rechnungen zugewiesen werden. Die Daten dafür liefern zwei CSV Dateien, die mit der Abrechnungsdatei verknüpft sind und es funktioniert perfekt!
Ich bin eigentlich fast am Ziel, auch dank deines kleinen Makros - danke noch mal! :) Das einzige Problem ist noch der aufpoppende Eigenschaften Dialog, ansonsten entspricht die Datei schon komplett meinen Vorstellungen! Drum möchte ich lieber dahingehend noch alles probieren, ehe ich mit was ganz anderem von vorne beginnen muss.

Oh und danke für das Angebot das Dokument hochzuladen! Das Problem ist, dass hier sehr viele sensible Daten verarbeitet werden, die ich nicht alle unkenntlich machen kann.

Re: Makro Schleife zur automatischen Rechnungs Erstellung

von F3K Total » Mo, 06.06.2022 11:41

Moin,
die Idee von Karolus halte ich auch für gut.
Allerdings ist es mit einem Serienbrief beim Drucken von Rechnungen oft schwierig, unterschiedliche Anzahlen von Rechnungspositionen zu verarbeiten.
Es hängt also davon ab, was in deinen Rechnungen aufgeführt werden soll.
Wenn du dein gesamtes Dokument, ggf. verfremdet, hier hochladen würdest, könnte man dir sicherlich besser helfen.

Man kann .pdf Dateien auch ohne aufpoppenden Dialog exportieren.

Gruß R

Nach oben