AW: VBA - Rechnungsnummer
07.01.2008 16:16:54
Erich
Hallo Charly,
sorry, bei meiner Prozedur fehlte noch eine Zeile (intK = FreeFile). Deshalb nochmal:
Option Explicit
Function RechnungsNummer()
Dim intK As Integer
Const strDat As String = "C:\Daten\Zaehler.txt" ' anpassen
intK = FreeFile
If Dir(strDat) = "" Then
On Error Resume Next
Open strDat For Output As #intK
If Err > 0 Then
MsgBox "Kann Datei '" & strDat & "'nicht anlegen - Abbruch", _
vbCritical, "Funktion RechnungsNummer"
Exit Function
End If
On Error GoTo 0
Write #intK, 0
Close intK
End If
On Error Resume Next
Open strDat For Input As #intK
If Err > 0 Then
MsgBox "Kann Datei '" & strDat & "'nicht öffnen - Abbruch", _
vbCritical, "Funktion RechnungsNummer"
Exit Function
End If
On Error GoTo 0
Line Input #intK, RechnungsNummer
Close intK
RechnungsNummer = RechnungsNummer + 1
Open strDat For Output As #intK
Write #intK, RechnungsNummer
Close intK
End Function
Vielleicht solltest du noch mal darüber nachdenken, WANN eine neue Re-Nr zu vergeben ist.
Das ist keine Excel- oder VBA-Frage, sondern eine rein fachliche.
Soll die neue Nummer beim Anlegen oder Fertigstellen oder Drucken vergeben werden?
Wenn die Nummer zu früh vergeben wird, werden viele Nummern verbraucht, zu denen es keine Rechnung gibt.
(Menschen machen Fehler, werden bei der Arbeit gestört, ...)
Du wolltest jetzt die Nr. beim Öffnen der Rechnung.xls hochzählen.
Dazu brauchst du nur (wie bisher im Modul der Arbeitsmappe)
Option Explicit
Private Sub Workbook_Open()
Tabelle1.Cells(7, 13) = RechnungsNummer
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort