Fakturanummer

24/04/2010 - 18:54 von Oski | Report spam
Hallo

Ich möchte beim öffnen einer Fakturavorlage das die Fakturanummer
automatisch vergeben und immer um eins erh^öt wird. Wie könnte das aussehen
im Excel 2003

Gruss
Oski
 

Lesen sie die antworten

#1 Andreas Killer
25/04/2010 - 09:26 | Warnen spam
Oski schrieb:

Ich möchte beim öffnen einer Fakturavorlage das die Fakturanummer
automatisch vergeben und immer um eins erh^öt wird. Wie könnte das aussehen
im Excel 2003


Indem Du im Workbook_Open-Ereignis die letzte vergebene Nummer von
irgendwo her einließt, 1 addierst und in eine Zelle eintràgst.

Im Workbook_BeforeSave-Ereignis prüfst Du dann ob der Pfad der Mappe
etwas enthàlt, falls nicht wird die Mappe zum ersten Mal gespeichert.
In diesem Fall speicherst Du Deine Nummer aus der Zelle irgendwo ab
für die nàchste Vorlage.

Das "irgendwo" könnte z.B. eine bestimmte Datei sein.

Der Code muss in das Codemodul "DieseArbeitsmappe", wie's geht steht hier:
http://www.online-excel.de/excel/si....php?fD#s3

Andreas.

Option Explicit

'In diesem File wird die Nummer gespeichert
Const FakturaNummerFile = "C:\Fakturanummer.txt"

'Konstanten aus Scripting.IOMode
Const ForReading = 1
Const ForWriting = 2

Private Sub Workbook_Open()
Dim fs As Object 'FileSystemObject
Dim ts As Object 'TextStream
Dim FakturaNummer As Integer

Set fs = CreateObject("Scripting.FileSystemObject")
'Gibt es schon eine Datei?
If fs.FileExists(FakturaNummerFile) Then
'Ja, Datei öffnen
Set ts = fs.OpenTextFile(FakturaNummerFile, ForReading)
'Nummer einlesen
FakturaNummer = ts.ReadLine
ts.Close
End If

'Nàchste Nummer eintragen
Range("A1") = FakturaNummer + 1
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
'Tritt ein, bevor eine geöffnete Arbeitsmappe gespeichert wird.
Dim fs As Object 'FileSystemObject
Dim ts As Object 'TextStream

'Wenn Pfad leer, dann wird zum ersten Mal gespeichert
If Len(ThisWorkbook.Path) = 0 Then
'Datei erstellen, vorhandene überschreiben
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile(FakturaNummerFile, ForWriting, True)
'Nummer schreiben
ts.WriteLine Range("A1")
ts.Close
End If
End Sub

Ähnliche fragen