Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fortlaufende Nummer prüfen und nur einmal vergeben

Fortlaufende Nummer prüfen und nur einmal vergeben
13.08.2007 18:03:00
chris58
Hallo !
Ich habe eine Excelmappe in der insgesamt 3 Blätter drinnen sind. Es gibt dabei eine "Eingangsliste" wo eine fortlaufende Nummerierung in Spalte B stattfindet. Aus dieser Eingangsliste werden bei Bedarf Zeilen in eine "Auftrag" und "Erledigt" Datei herausgelöscht und dort aufbewahrt. Nun bin ich gerade draufgekommen, daß wenn ich die fortlaufenden Nummern nicht mehr in der "Eingangsliste" habe, diese jedoch entweder in der "Auftrag" oder "Erledigt" Datei vorkommen, ich eine falsche fortlaufende Nummer eingebe. Nun zu meiner Frage:
Kann man mittels VBA prüfen ob die Nummer die vergeben wird schon vorkommt und dann die nächstmögliche ermittelt oder kann man mittels VBA die Antweisung erteilen, das die nächstmögliche Nummer, wenn man ein Datum in Spalte A eingibt, vergeben wird ?
Danke für eure Hilfe
chris

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fortlaufende Nummer prüfen und nur einmal vergeben
13.08.2007 19:30:07
Original
Hi,
lad mal ein Beispiel hoch.
mfg Kurt

AW: Fortlaufende Nummer prüfen und nur einmal vergeben
13.08.2007 19:55:41
chris58
Hier die Datei ... hoffe du kannst mir helfen. Wenn die Nummer aus Dok.Ink. in Neuwagen-Finanzierung kopiert wird, dann sieht man sie nicht mehr, also könnte man dann die nächste Nummer nehmen, obwohl diese ja bereits vergeben ist.
danke
chris

Die Datei https://www.herber.de/bbs/user/45024.xls wurde aus Datenschutzgründen gelöscht


Anzeige
AW: Fortlaufende Nummer prüfen und nur einmal vergeben
13.08.2007 20:59:00
Original
Hi,
Mann, ist das ein Gewurschtel, da hänge ich mich nicht rein.
Nur mal vom Prinzip, ermittle das Maximum der drei Spalten, das geht ja ganz easy mit
der Funktion Max(), Max + 1 ist dann immer die nächstmögliche Nummer.
mfg Kurt

AW: Fortlaufende Nummer prüfen und nur einmal vergeben
13.08.2007 21:33:00
Peter
Hallo Chris,
ich gehe davon aus, dass du die lfd Nr im Blatt Dok.Ink. manuell erfasst.
Dann könnte die Prüfung so gehen. https://www.herber.de/bbs/user/45026.xls
Gruß Peter

Anzeige
AW: Fortlaufende Nummer prüfen und nur einmal vergeben
13.08.2007 22:36:00
chris58
Hallo !
Ja, das ist das richtige, nur leider bin ich nicht fähig das in meine Datei reizukopieren. Ich nehme den Code aus Dok.Ink. und kopiere ihn in meine Datei Dok.Ink. .. doch da geht der Code dann nicht
lg
chris
So hab ich den Code kopiert in Dok.Ink. muß ich noch woanders eine Änderung vornehmen ?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lRow     As Long
Dim sSheet   As String
Dim iLfd_Nr  As Integer
If Target.Column = 2 And Target.Row > 3 And Target.Rows.Count = 1 Then
If Target.Value > WorksheetFunction.Max(Range("B3:B" & Target.Row - 1)) Then
If Application.WorksheetFunction.CountIf(Worksheets _
("Neuwagen-Finanzierung").Range("B3:B1000"), Target.Value)  0 Or _
Application.WorksheetFunction.CountIf(Worksheets _
("Erledigt").Range("B3:B1000"), Target.Value)  0 Then
MsgBox "Die eingetragene laufende Nummer  """ & Target.Value & _
"""  gibt es bereits - bitte eine neue Nummer eingeben.", _
48, "   Hinweis für " & Application.UserName
Target.Value = ""
Cells(Target.Row, 2).Select
Exit Sub
End If
End If
End If
If Not ((Target.Column = 9 Or Target.Column = 10) And _
Target.Row > 3 And Target.Rows.Count = 1) Then GoTo leave_sub
On Error GoTo leave_sub
Application.EnableEvents = False
If IsDate(Target) Then ' Abfrage, ob Datum
sSheet = IIf(Target.Column = 9, "Erledigt", "Neuwagen-Finanzierung")
lRow = Sheets(sSheet).Range("A" & Sheets(sSheet).Rows.Count).End(xlUp).Row + 1
ActiveSheet.Range(Cells(Target.Row, 1), Cells(Target.Row, 10)).Copy
Sheets(sSheet).Cells(lRow, 1).PasteSpecial Paste:=xlPasteValues
If sSheet = "Erledigt" Then
Sheets(sSheet).Cells(lRow, 1).PasteSpecial Paste:=xlPasteFormats
ActiveSheet.Cells(Target.Row, 1).EntireRow.Delete (xlUp)
Sheets(sSheet).Cells(lRow, 11) = Date
MsgBox "Wurde in die Datei [Erledigt] kopiert" & vbCrLf & _
"und in der Datei [Dok.Ink] gelöscht!", _
vbOKOnly + vbInformation, "Erledigen"
Else
Sheets(sSheet).Cells(lRow, 11).Value = Date
MsgBox "Datensatz wurde in Datei [" & sSheet & "] kopiert!", _
vbOKOnly + vbInformation, "Kopieren"
End If
End If
leave_sub:
Application.EnableEvents = True
End Sub



Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("C4:C5000")) Is Nothing Then
Sheets("Quittung").Range("D7").Value = Target.Value
End If
End Sub


Anzeige
AW: Fortlaufende Nummer prüfen und nur einmal vergeben
14.08.2007 09:32:00
Peter
Hallo Chris,
der Code gehört in das Tabellenblatt Dok.Ink.
Rechtsklick auf den Tabellenblatt-Reiter
Code anzeigen anklicken
das vorhandene Private Sub Worksheet_Change(ByVal Target As Range) durch das neue ersetzen
Schließen-Kreuz anklicken
Mappe sichern
testen.
Gruß Peter

Anzeige
AW: Fortlaufende Nummer prüfen und nur einmal vergeben
14.08.2007 18:40:00
chris58
Danke....... irgendwas hab ich falsch gemacht........... jetzt gehts plötzlich
danke nochmals
chris
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Fortlaufende Nummer prüfen und nur einmal vergeben


Schritt-für-Schritt-Anleitung

Um eine fortlaufende Nummer in Excel zu vergeben und zu prüfen, ob diese bereits vergeben ist, kannst Du folgendes Vorgehen anwenden:

  1. Öffne Deine Excel-Datei und gehe zu dem Blatt, wo die fortlaufende Nummer (z.B. in Spalte B) eingegeben werden soll.

  2. Öffne den VBA-Editor: Drücke ALT + F11.

  3. Wähle das entsprechende Arbeitsblatt (z.B. "Dok.Ink") im Projektfenster aus.

  4. Füge den folgenden VBA-Code in das Codefenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim lRow As Long
       Dim sSheet As String
       If Target.Column = 2 And Target.Row > 3 And Target.Rows.Count = 1 Then
           If Application.WorksheetFunction.CountIf(Range("B3:B" & Target.Row - 1), Target.Value) > 0 Then
               MsgBox "Diese Nummer ist bereits vergeben. Bitte eine neue Nummer eingeben.", vbExclamation
               Target.Value = ""
               Exit Sub
           End If
       End If
    End Sub
  5. Schließe den VBA-Editor und speichere die Datei.

  6. Teste die Eingabe einer neuen laufenden Nummer in Spalte B. Wenn die Nummer bereits vorhanden ist, erhältst Du eine Fehlermeldung.


Häufige Fehler und Lösungen

  • Nummer plötzlich nicht mehr vergeben: Überprüfe, ob Du die richtige Spalte angegeben hast. Der Code prüft nur die Spalte B.
  • Fehlermeldung beim Ausführen des Codes: Stelle sicher, dass die Makros in Excel aktiviert sind.
  • Die eingegebene Nummer wird nicht erkannt: Achte darauf, dass keine führenden oder nachfolgenden Leerzeichen in der Eingabe vorhanden sind.

Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die Excel-Funktion MAX() nutzen, um die nächstgrößere Nummer zu ermitteln:

  1. In einer Zelle, z.B. C1, gib die folgende Formel ein:
    =MAX(B3:B1000) + 1
  2. Diese Formel gibt die nächste verfügbare Nummer zurück, die Du dann manuell in die Spalte B eingeben kannst.

Praktische Beispiele

Angenommen, Du hast folgende laufende Nummern in Spalte B:

B
1
2
3
5

Wenn Du die Nummer 4 eingeben möchtest, erscheint eine Fehlermeldung, weil diese Nummer nicht existiert. Wenn Du jedoch 6 eingibst, wird sie akzeptiert, da sie die nächste fortlaufende Nummer ist.


Tipps für Profis

  • Verwende Datenvalidierung, um sicherzustellen, dass nur numerische Werte eingegeben werden können.
  • Nutze die Funktion VLOOKUP(), um zu prüfen, ob eine Nummer bereits in einer anderen Tabelle (z.B. "Auftrag" oder "Erledigt") vergeben ist.
  • Erstelle eine Quittungsvorlage in Excel, die automatisch die nächste verfügbare laufende Nummer aus Deiner Liste einfügt, um die Verwaltung zu erleichtern.

FAQ: Häufige Fragen

1. Was ist eine laufende Nummer?
Eine laufende Nummer ist eine fortlaufende Zählung, die zur Identifikation von Dokumenten oder Datensätzen verwendet wird.

2. Wie kann ich prüfen, ob eine Nummer bereits vergeben ist?
Du kannst dies durch den Einsatz von VBA oder durch die Funktion COUNTIF() in Excel überprüfen.

3. Was passiert, wenn ich eine doppelte Nummer eingebe?
Wenn die Prüfung korrekt implementiert ist, erhältst Du eine Fehlermeldung, die Dich darauf hinweist, dass die Nummer bereits vergeben ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige