Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1912to1916
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Rechnungsnummern & pdfs mergen

Rechnungsnummern & pdfs mergen
24.12.2022 15:56:39
Daniel
Hallo allerseits,
erst einmal möchte ich Euch allen ein frohes Weihnachtsfest und erholsame Tage wünschen.
Ich arbeite derzeit an einer Massengenerierung von manuellen Rechnungsdokumenten anhand einer tabellarischen Aufstellung, welche monatlich genutzt wird.
Dieses Tool soll fortlaufende Rechnungsnummern (Buchungskreis&Jahr&fortlaufende Nummer) generieren, die Fakturen befüllen, speichern und per Mail versenden, sowie das dazugehöriges Buchungsdokument erstellen, nach SAP buchen und Buchungsbeleg abspeichern. Das Meiste hiervon funktioniert auch soweit gut.
Bei dem Rechnungsnummern-Zähler konnte mir bereits "Steffen" weiterhelfen, jedoch habe ich noch nicht herausgefunden wie der Zähler nach Abspeicherung der Rechnungsdokumente weiterzählt und auch die Nummer nur vergibt, wenn der Beleg gespeichert wurde. Daher habe ich es mit der folgenden Bedingung versucht/ erweitert, welche aber nicht so funktioniert, wie ich mir das vorstelle.
If shMenu.cmdSaveInvoices.Object.Enabled = True Then
dicInvNos(intCC) = intInvNo + 1
End If

Das Ganze befindet sich im Modul "basInvNo", sowie im Workbook _Event.
Ferner würde ich gerne zu der generierten Rechnung/ Weiterbelastung (pdf) einen eventuellen kreditorischen Ursprungsbeleg (per Pfad und ebenfalls als pdf) hinzufügen, bevor dieser gemailt wird. Die Pfade werden hierzu in der Tabelle eingetragen und sollen entsprechend per VBA ausgelesen werden.
Dazu bin ich hier im Forum bereits fündig geworden und habe diesen Code versucht auf meinen Sachverhalt anzupassen, bisher aber ohne Erfolg. Modul: basInvAtt
https://www.herber.de/bbs/user/156932.xlsm
Für Eure Hilfe bin ich Euch sehr dankbar
Gruß Daniel
P.S. Sollte Jemand noch einen Tipp/ Code haben, wie ich die gespeicherten Belege (Rechnug und Buchungsbeleg) im Nachgang per Masse (sprich VBA) den SAP "Diensten zum Objekt" je gebuchten Beleg zuordnen/ anhängen kann, wäre das grandios!
Vielen Dank im Voraus!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rechnungsnummern & pdfs mergen
24.12.2022 23:51:51
ralf_b
Was muss man denn tun um den Code Sub InvNoS() zu testen?
Die sub wird nirgendwo aufgerufen. Also nutzt du den auch nicht.
Oder das hier in basInvAtt. Es soll die Spaltennummer genutzt werden. Die ist aber bei dir ein Text. Zumindest bei meinem Test, geht das in die Hose. Deshalb die Variable mit cint() casten.

lo.DataBodyRange.Cells(i, strColInvForAtt).Value
lo.DataBodyRange.Cells(i, CInt(strColInvForAtt)).Value
In den Spalten mit den Attachements hast du mal mit und mal ohne Dateiendung gearbeitet. Hast du das im Griff wenn es um die Dateierstellung mit gswin geht?
Anzeige
AW: Rechnungsnummern & pdfs mergen
27.12.2022 15:09:08
Daniel
Hallo Ralf,
vielen Dank für Deinen Hinweis bezüglich des fehlenden Dateiformats. Ist mir irgendwie nicht aufgefallen. Habe nun die entsprechenden Endungen hinzugefügt, sowie den Code angepasst:

  With shAufstellung
For i = 1 To lo.DataBodyRange.Rows.Count
intCC = lo.DataBodyRange(i, intColBUKRS)
strOrdner = ThisWorkbook.Path & "\" & Format(Date, "YYYY") & "\" & intCC
If fso.FileExists(lo.DataBodyRange.Cells(i, CInt(strColInvForAtt)).Value) And _
fso.FileExists(lo.DataBodyRange.Cells(i, CInt(strColInvAtt)).Value) Then
strMulti = " " & Chr(34) & lo.DataBodyRange.Cells(i, CInt(strColInvForAtt)).Value & Chr(34) & _
" " & Chr(34) & lo.DataBodyRange.Cells(i, CInt(strColInvAtt)).Value & Chr(34)
strOrdner = fso.getfolder(strOrdner).ShortPath
strGS = fso.GetFile(strGS).ShortPath
strCommand = strGS & " -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="
strCommand = strCommand & strOrdner & "\"
'Name der Ausgabedatei = Name der Datei in der Spalte AD
strCommand = strCommand & fso.GetFile(lo.DataBodyRange(i, CInt(strColInvForAtt)).Value).Name & Chr(34) & strMulti
Debug.Print strCommand
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run strCommand, 0, True
Set WshShell = Nothing
End If
Next i
End With
Dennoch wird die Bedingung gar nicht berücksichtigt und springt nur zwischen If und End If hin und her. Die Dateien sind auch im benannten Ordner abgelegt, aber scheinbar nicht gefunden.
Die Prozedur Sub InvNoS() wird bisher noch nicht mittels Button ausgeführt, da mir noch die Idee fehlt wie im nächsten Monat/ bzw. bei Speicherung durch den Button "Save Invoices" eine neue fortlaufende Nummer generiert wird, sprich die generierte Nummer nur vergeben wird, wenn der Beleg auch gespeichert wurde. Dadurch ist diese bisher nur im Modul "basInvoiceNo" ausführbar. Dabei werden die Nummern in der tabellarischen Aufstellung geschrieben und das Modul "basInvoiceDoc" holt sich die Nummern in den entsprechenden Beleg.
Zukünftig soll das ein Schritt sein, sprich es wird mit der Nummergenerierung gestartet und ruft die nächste Prozedur "Sub CreateInvoiceDocument_MAIN()" auf.
Für weitere Ratschläge/ Ideen/ Codeanpassungen wäre ich Dir sehr dankbar.
Gruß Daniel
Anzeige
AW: Rechnungsnummern & pdfs mergen
28.12.2022 09:47:01
ralf_b
wenn die if Abfrage nicht true ergibt, stimmt was mit den beiden Dateien nicht. Lass dir die einzelnen Teile doch mal per debug.print ins Direktfenster schreiben.
Also bei mir geht das.
AW: Rechnungsnummern & pdfs mergen
28.12.2022 11:00:01
Daniel
Hallo Ralf,
den Fehler habe ich nun gefunden. Nun ist die Bedingung auch True und funktioniert. Ich muss nur noch schauen, warum nicht gemerged wurde. Das finde ich aber noch heraus. Evtl. muss das in einem separaten Ausgabeordner und nicht in dem, wo auch bereits die Ursprungs-pdfs enthalten sind.
Hast Du evtl. noch einen Tipp bzgl. meiner Rechungsnummern-Thematik (tats. Vergabe und Zählererhöhung durch Betätigung des Speicher-Buttons)?
Vielen Dank für Deine Unterstützung.
Anzeige
AW: Rechnungsnummern & pdfs mergen
28.12.2022 19:26:55
ralf_b
für deine Rechnungsnummern habe ich so keine Idee.
Aber bei dem Shellaufruf wirst du evtl. noch Einiges umbauen müssen.
Wenn die Dateien direkt benannt werden, ist der Ordner egal. Aber die Ausgabedatei sollte vielleicht nicht wie deiner der Quelldateien heissen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige