Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Format klappt nicht

Forumthread: Format klappt nicht

Format klappt nicht
Norbert
Hallo ...,
habe folgende Funktion

Function Neue_No()
Dim No, No1, No2, No3 As String
r = Anzahl
No1 = Format(Date, "mmyy")
No2 = Right(Cells(r - 1, 1).Value, 3) + 1
No3 = Left(Cells(r - 1, 1).Value, 4)
If No1 = No3 Then
No = No1 & No2
Else: No = No1 & "001"
End If
Cells(r, 1) = No
End Function

No ist eine Zahl aus Monat + Jahr (0404) & einer laufenden Nummer (3-stellig).
Beispiel 0404168
Ändert sich Monat + Jahr soll die laufende Nummer wieder bei 001 beginnen.
Und hier liegt mein Problem (Else-Zweig No = No1 & "001").
Es wird dann angezeigt 05041 aber es soll in dem Format 0504001 angezeigt werden.
Wo liegt mein Fehler oder wie Formatiere ich das richtig?
Danke
Norbert
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Format klappt nicht
Hans
Hallo Norbert,
erlaube mir, etwas grundsätzlich auf Deinen Code einzugehen:
Das Problem entsteht durch eine unsaubere Variablendeklaration. In der Literatur wird Deine Art zu deklarieren des öfteren gezeigt, es führt aber zu falschen Ergebnissen.
Bei der Variablendeklaration:
Dim No, No1, No2, No3 As String
ist No Variant, No1 und No2 ebenfalls, No3 String. Richtig ist:
Dim No As String, No1 As String, No2 As String, No3 As String
Weiter:
Funktionen werden mit Parametern aufgerufen und geben Werte zurück, schreiben nichts in Zellen. Globale Variablen sind zu vermeiden.
Das Code-Beispiel mit Aufruf:

Sub Aufruf()
Dim iRow As Integer
iRow = 5
Cells(iRow, 1).Value = Neue_No(iRow)
End Sub


Function Neue_No(iRow As Integer) As String
Dim No As String, No1 As String, No2 As String, No3 As String
No1 = Format(Date, "mmyy")
No2 = Right(Cells(iRow - 1, 1).Value, 3) + 1
No3 = Left(Cells(iRow - 1, 1).Value, 4)
If No1 = No3 Then
Neue_No = No1 & No2
Else
Neue_No = No1 & "001"
End If
End Function

gruss hans
Anzeige
AW: Format klappt ;-))
29.04.2004 09:22:17
Norbert
Hallo Hans,
da kann ich nur sagen Danke, Danke, Danke !!!
Das mit der Variablendeklaration habe ich noch nie gehört.
Werde mich dran halten.
Nochmals Danke
Norbert
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige