Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
420to424
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige