Office-Fragen.de
Fortlaufende Belegnummer Format - Druckversion

+- Office-Fragen.de (https://office-fragen.de)
+-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html)
+--- Forum: Excel (https://office-fragen.de/forum-2.html)
+--- Thema: Fortlaufende Belegnummer Format (/thread-28734.html)



Fortlaufende Belegnummer Format - jk - 03.04.2023

Hallo liebe Forummitglieder,

ich bitte um kurze Hilfe mit einem VBA Code. 

Ich möchte in einer Zelle folgende fortlaufende Belegnummer anzeigen:"2023_001" usw.
Mit folgendem Code kann ich die Belegnummer wie folgt (fotlaufend) anzeigen: "01/2023" usw. 

'letzte Zeile ermitteln

lngLetzte = Sheets(strObjblatt).Cells(65536, 1).End(xlUp).Row

'Auswerten der letzten Belegnummer (Angebot bzw. Rechnung)
intPos1 = InStr(Sheets(strObjblatt).Cells(lngLetzte, 2), "/")
intLfdnr = Format(Left(Sheets(strObjblatt).Cells(lngLetzte, 2), intPos1 - 1), "00")
intJahr = Mid(Sheets(strObjblatt).Cells(lngLetzte, 2), intPos1 + 1, intPos1 + 1)

'Neu generierte Belegnummer in das Tabellenblatt "Erfassung" schreiben
Sheets("Erfassung").Range("B19").Value = Format(intLfdnr + 1, "00") & "/" & intJahr


Mein Problem ist eben, dass sich die Belegnummer nach Abänderung des Codes nicht mit Unterstrich im folgenden Format anzeigen lässt "2023_001" usw.

Vielleicht hat hier jemand einen Vorschlag für mich.

Vielen Dank!


RE: Fortlaufende Belegnummer Format - AlterDresdner - 04.04.2023

Hallo.
als Vorschlag
Sheets("Erfassung").Range("B19").Value = intJahr & "_" & Format(intLfdnr + 1, "000")


RE: Fortlaufende Belegnummer Format - jk - 04.04.2023

Vielen lieben Dank für deinen Vorschlag.

Leider kann ich mit dieser Zeile alleine nicht viel anfangen und es funktioniert nicht ganz.

Ich muss hier vermutlich auch bei den folgenden CodeZeilen Änderungen durchführen, allerdings habe ich hier noch keine gute Lösung parat:

'Auswerten der letzten Belegnummer (Angebot bzw. Rechnung)
intPos1 = InStr(Sheets(strObjblatt).Cells(lngLetzte, 2), "/")
intLfdnr = Format(Left(Sheets(strObjblatt).Cells(lngLetzte, 2), intPos1 - 1), "00")
intJahr = Mid(Sheets(strObjblatt).Cells(lngLetzte, 2), intPos1 + 1, intPos1 + 1)

Bitte um weitere Hilfe.

Vielen Dank!


RE: Fortlaufende Belegnummer Format - AlterDresdner - 04.04.2023

Hallo,
intLfdnr müsste als Integer oder Long deklariert sein,der Code ist ungetestet:

'Auswerten der letzten Belegnummer (Angebot bzw. Rechnung)
intPos1 = InStr(Sheets(strObjblatt).Cells(lngLetzte, 2), "_")
intLfdnr = val(Mid(Sheets(strObjblatt).Cells(lngLetzte, 2), intPos1 + 1)
intJahr = Left(Sheets(strObjblatt).Cells(lngLetzte, 2), intPos1 - 1)

'Neu generierte Belegnummer in das Tabellenblatt "Erfassung" schreiben
Sheets("Erfassung").Range("B19").Value = intJahr & "_" & Format(intLfdnr + 1, "000")

Nicht ganz klar ist mir, warum du die letzte Zeile im Blatt strObjBlatt suchst, das Ergebnis aber hart in B19 in "Erfassung" schreibst.
Zur Klärung könntest du eine anonymisierte Datei posten...


RE: Fortlaufende Belegnummer Format - jk - 07.04.2023

Hallo,

der Code hat funktioniert, vielen lieben Dank. Ich habe nur bei der folgenden Zeile "intLfdnr = val(Mid(Sheets(strObjblatt).Cells(lngLetzte, 2), intPos1 + 1)" dieses "val" weggelassen.

Die letzte Zeile im Blatt strObjBlatt suche ich deshalb, weil hier nur die Ergebnisse aus Angebot, Auftrag und Rechnung eingetragen werden, die Hauptmaske ist im Tabellenblatt Erfassung gemacht.

Danke noch einmal für deine Hilfe.

GLG
jk


RE: Fortlaufende Belegnummer Format - AlterDresdner - 08.04.2023

Hi, wenns klappt ist alles Ok. Frohe Ostern!


RE: Fortlaufende Belegnummer Format - jk - 09.04.2023

Danke dir! Frohe Ostern!