Fortlaufende Rechnungsnummer mit Excel – die zweite

In Ausgabe 2/98 hat WIN auf Seite 181 einen Vorschlag für fortlaufende Rechnungsnummern in Excel von Jörg Schulmeister vorgestellt. Dabei dient eine Excel-Tabelle als externer Speicher für die laufende Nummer. Peter Brath schlägt nun statt dessen den Einsatz einer Binärdatei vor. Mit der von ihm entwickelten Lösung läßt sich der Zeitaufwand beim Öffnen von Arbeitsmappen erheblich reduzieren. Außerdem ist der Einsatz einer Binärdatei professioneller. Allerdings muß der Anwender bei der Programmierung mit entsprechend komplexen Befehlen umgehen können.
Starten Sie in Excel mit dem Befehl Einfügen – Makro – Visual Basic Modul den Visual-Basic-Editor. Legen Sie dann mit Einfügen – Modul ein neues Modul an. Geben Sie die im Kasten äFortlaufende Rechnungsnummerô auf der nächsten Seite stehenden Anweisungen ein. Dabei ersetzen Sie die kursiv gedruckten Angaben bitte entsprechend Ihren Bedürfnissen.
Die IF-Anweisung prüft, ob die Tabelle schon eine Rechnungsnummer enthält. Wenn ja, bricht das Programm ab. Andernfalls führt es die Anweisungen aus. Deshalb müssen Sie die Zelle, in der die Rechnungsnummer stehen soll, mit einer 0 initialisieren.
Die erste Zeile des Anweisungsblocks deklariert die benötigten Variablen: Eine für die Rechnungsnummer und eine für die Dateinummer. Diese Nummer dient innerhalb des Makros zur Identifikation einer Binärdatei. So ist es möglich, gleichzeitig mehrere Dateien zu bearbeiten. Die Funktion Free-File() bestimmt die nächste verfügbare Dateinummer. Der Parameter 1 sorgt für die Rückgabe einer Kennung zwischen 256 und 511.
Allgemein gilt, daß anwendungspezifische Dateien mit FreeFile(0) und Dateien, auf die auch andere Anwendungen Zugriff haben, mit FreeFile(1) ihren Identifikator initialisieren. Dann folgen – wie in der Lösung aus Heft 2/98 – die bekannten Operationen für das Öffnen der Datei, das Auslesen der letzten und das Berechnen und Schreiben der aktuellen Nummer.
Um mehr Geschwindigkeit zu erzielen, können Sie auf das mehrmalige Öffnen und Schließen der Binärdatei während einer Sitzung in Excel verzichten. Verwenden Sie dafür in der ersten Open-Anweisung anstelle von Read den Parameter Read Write. Das ermöglicht Ihnen, lesend und schreibend auf die Datei zuzugreifen. Das Listing zum Tip finden sie als TXT-File auf der aktuellen WIN-Monats-CD.

Listing: Fortlaufende Rechnungsnummer
Private Sub Workbook_Open ()Sub¶
If ThisWorkbook.Sheets (ô
Tabelle1ô).Range (ô
B2ô).Value = 0 Then¶
Dim RN As Long, DatNr¶
DatNr = FreeFile (1)¶
Open ô
C
:\
Daten
\
Rechnum
.
binô For Binary Access Read As #DatNr¶
Get #DatNr, , RN¶
Close #DatNr¶
RN = RN + 1¶
Open ô
C
:\
Daten
\
Rechnum
.
binô For Binary Access Write As #DatNr¶
Put #DatNr, , RN¶
Close #DatNr¶
Range (ô
B2ô).Select¶
ActiveCell.Value = RN¶
End If¶
End Sub¶