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

Forumthread: Automatische Nummerierung Tabelle

Automatische Nummerierung Tabelle
30.11.2020 11:36:43
Amon
Hallo,
ich habe mir eine relativ aufwändige ToDo-Liste mit einigen Dropdown-Listenbezügen, viel bedingter Formatierung und einem bisschen VBA für verschiedene Sortierungen per Knopfdruck gebaut.
Ansich funktioniert sie sehr gut und ich arbeite schon eine Weile gerne damit, allerdings macht mich eine Sache verrückt. Wenn ich meine Tabelle um eine Zeile erweitere, indem ich bspw. in der letzten Zelle auf die Tabulatortaste drücke, erweitern sich alle Formeln und Listenbezüge ohne Probleme, sodass ich sie nicht erneut für die hinzugefügte Zeile eingeben muss. Komischerweise funktioniert das aber nicht für die Nummerierung.
Ich habe in der ersten Spalte eine Index-Nummerierung damit ich jedem ToDo eine eindeutige Nummer zuordnen kann. Also einfach eine 1 in die erste Zelle geschrieben und mit einem Doppelklick auf das Plus unten rechts auf alle darunterliegenden Zellen erweitert. Eigentlich sollte eine solche Nummerierung doch auch ohne weiteres auf die neue Zeile ausgeweitet werden oder?
Ich habe schon alles versucht und komme einfach nicht darauf, was das problem sein könnte.
Eine Formel wie bspw. =Zeile() +1 macht für mich keinen sinn, weil sich in diesem Fall ja die Indizes verändern würden sobald die Zeilen anders soriert werden.
Im Grunde ist es kein riesen Problem die Zahl jedes mal von Hand einzutragen, aber irendwie macht es mich einfach verrückt, dass es nicht funktionieren will.
Hat vielleicht jemand eine Idee woran das liegen könnte?
Über Hilfe wäre ich sehr dankebar:)
Viele Grüße
Amon
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatische Nummerierung Tabelle
30.11.2020 11:44:37
ralf_b
schreib doch mal z.b. A3 = A2+1
AW: Automatische Nummerierung Tabelle
30.11.2020 16:47:56
Amon
Moin Ralf,
danke für Deinen Vorschlag.
Diese Möglichkeit hatte ich auch erst im Kopf, aber in diesem Fall ändern sich die Werte, wenn ich die Zeilen per Knopfdruck sortiere und gerade das möchte ich ja nicht.
AW: ... wie von Dir angestrebt ...
30.11.2020 13:36:13
Dir
Hallo Amon,
... als eindeutige Nummerierung, ist mit Formeln nur bedingt erzielbar.
Bei z.B. einer Neusortierung Deiner Daten würden normale einfache Formeln den jeweiligen Datensatz eine unerwünschte andere Nummer zuweisen oder z.B. bei Löschen von Datensätzen sogar zu Problemen führen können.
Sollten Deine Datensätze jedoch z.B. zusätzlich ein eindeutiges Datum mit Zeit besitzen und es werden keine Datensätze gelöscht, dann wäre so bedingt eine Formellösung möglich. Ansonsten bleibt Dir mE nur weiterhin Handeingabe oder eine VBA-Lösung.
Gruß Werner
.. , - ...
Anzeige
AW: ... wie von Dir angestrebt ...
30.11.2020 16:56:21
Dir
Hallo Werner,
ich bin auch zu dem Schluss gekommen, dass es nicht per Formel funktionieren kann. Aber es gibt doch eigentlich die Funktion "Datenreihe ausfüllen" die ausgeführt wird wenn man bspw. eine 1 und eine 2 in zwei Zellen untereinander schreibt und dann mit dem kleinen Kreuz unten Rechts nach unten zieht. Ich dachte eigentlich immer, dass diese Datenreihen auch weitergeführt werden, wenn man Tabellen erweitert.
Falls dem nicht so ist: hättest du vielleicht einen Ansatz, wie man das per VBA abbilden könnte? Einen Button, der der Tabelle eine neue Zeile hinzufügt und die nummer in die erste spalte schreibt könnte ich mir auch gut vorstellen.
Viele Grüße
Amon
Anzeige
AW: VBA-Lösung gesucht thread offen owT
01.12.2020 10:52:40
neopa
Gruß Werner
.. , - ...
AW: ... wie von Dir angestrebt ...
01.12.2020 17:32:18
Dir
das könnte so aussehen.
rechte maustaste auf tabellenblattregister , code anzeigen, einfügen

option explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B20")) Is Nothing Then  'dein tabellenbereich eintragen
If Cells(Target.Row, 1) = vbNullString Then
If IsNumeric(Cells(Target.Row - 1, 1)) And Cells(Target.Row - 1, 1) > 0 Then
Cells(Target.Row, 1).Value = Cells(Target.Row - 1, 1).Value + 1
End If
End If
End If
End Sub

Anzeige
AW: ... wie von Dir angestrebt ...
02.12.2020 13:12:17
Dir
Hallo Ralf,
vielen Dank für deine Mühe. Leider gibt er mir immer einen Fehler in der Zeile:
If Not Intersect (Target, Range ("A1:B20")) Is Nothing Then
aus.
Ich habe es jetzt aber durch ein bisschen Rumprobieren auf diese Weise hinbekommen:
Sub NeueZeile()
With ActiveSheet.ListObjects("Tabelle1")
.Resize Range("$A$4:$L$" & .ListRows.Count + 5)
loLetzte = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
Range("A" & loLetzte).Value = Application.Max(Range(Cells(5, "A"), Cells(Cells(Rows.Count, _
2).End(xlUp).Row, "B"))) + 1
Range("B" & loLetzte).Select
End With
End Sub
So wird per Knopfdruck eine Zeile hinzugefügt und in die erste Spalte die gewünschte Nummer geschrieben.
Anzeige
AW: ... wie von Dir angestrebt ...
02.12.2020 18:58:01
Dir
Am Ende zählt nur das es funktioniert. Das Wie ist sekundär.
Wenn ich gewusst hätte das du mit einer intelligenten Tabelle arbeitest, dann wäre mein Vorschlag anders.
Warum ermittelst du zweimal die letzte Zeile?
Warum bleibst du nicht komplett im Listobjekt?
https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Automatische Nummerierung in Excel-Tabellen


Schritt-für-Schritt-Anleitung

  1. Erstelle eine Tabelle:

    • Markiere die gewünschten Zellen und gehe zu "Einfügen" > "Tabelle".
    • Achte darauf, dass die Option "Meine Tabelle hat Überschriften" aktiviert ist.
  2. Nummerierung einfügen:

    • Schreibe in die erste Zelle der Spalte (z.B. A2) die Zahl 1.
    • In die nächste Zelle (A3) schreibst du die Formel =A2+1.
    • Ziehe das kleine Kreuz (AutoAusfüllen) in der unteren rechten Ecke von A3 nach unten, um die fortlaufende Nummerierung zu erzeugen.
  3. Automatische Nummerierung bei neuer Zeile:

    • Um die Nummerierung automatisch bei neuen Zeilen fortzusetzen, kannst du VBA verwenden (siehe Abschnitt "Alternative Methoden").

Häufige Fehler und Lösungen

  • Excel automatische Nummerierung funktioniert nicht: Wenn die Nummerierung nicht fortgesetzt wird, überprüfe, ob die Zellen in der Spalte formatiert sind und ob keine Filter aktiviert sind.

  • Excel nummeriert nicht fortlaufend: Stelle sicher, dass deine Tabelle als "Intelligente Tabelle" formatiert ist. Dies ermöglicht die korrekte Erweiterung der Nummerierung bei neuen Zeilen.

  • Warum zählt Excel nicht automatisch weiter?: Wenn Excel nicht automatisch weiter zählt, könnte dies an einer fehlerhaften Formel oder an einer Filterung der Daten liegen.


Alternative Methoden

  • VBA-Lösung: Wenn du eine benutzerdefinierte Lösung wünschst, kannst du VBA verwenden. Hier ist ein einfaches Skript, das eine neue Zeile hinzufügt und die Nummerierung aktualisiert:

    Sub NeueZeile()
       With ActiveSheet.ListObjects("Tabelle1")
           .Resize Range("$A$4:$L$" & .ListRows.Count + 5)
           loLetzte = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
           Range("A" & loLetzte).Value = Application.Max(Range(Cells(5, "A"), Cells(Cells(Rows.Count, 2).End(xlUp).Row, "B"))) + 1
           Range("B" & loLetzte).Select
       End With
    End Sub
  • Datenreihe ausfüllen: Du kannst auch zwei Zahlen in aufeinanderfolgende Zellen (z.B. 1 und 2) eingeben und dann das AutoAusfüllen verwenden, um eine fortlaufende Nummerierung zu erstellen.


Praktische Beispiele

  • Fortlaufende Nummerierung mit Buchstaben: Wenn du eine Kombination aus Zahlen und Buchstaben benötigst, kannst du die Formel anpassen:

    ="A" & A1

    Diese Formel fügt "A" vor jeder Nummer hinzu.

  • Gefilterte Zeilen nummerieren: Um gefilterte Zeilen zu nummerieren, kannst du die Formel =TEIL(FILTER(A:A;A:A<>"");ZEILE()-ZEILE($A$1);1) verwenden. Dies zählt nur sichtbare Zeilen.


Tipps für Profis

  • Verwende Excel-Tabellen: Intelligente Tabellen passen sich automatisch an und erleichtern die Verwaltung von Daten, einschließlich der automatischen Nummerierung.

  • Formel für nicht leere Zellen: Wenn du nur für nicht leere Zellen nummerieren möchtest, kannst du die Formel =WENN(A2<>"";MAX(A:A)+1; "") verwenden.

  • Nummerierung anpassen: Um die Nummerierung automatisch anzupassen, nutze die Funktion =WENN(A2<>"";A2+1; "") in Kombination mit den Datenüberprüfungen.


FAQ: Häufige Fragen

1. Warum funktioniert die automatische Nummerierung nicht bei jeder neuen Zeile? Die automatische Nummerierung in Excel funktioniert oft nicht, wenn die Tabelle nicht als "Intelligente Tabelle" formatiert ist.

2. Wie kann ich die Nummerierung bei einer neuen Zeile in einer Tabelle automatisieren? Du kannst VBA verwenden, um die Nummerierung bei neuen Zeilen automatisch anzupassen, oder du nutzt die AutoAusfüllen-Funktion für einfache Lösungen.

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