oesi1989
Goto Top

Nummerierung in Exceltabelle nicht vollständig

Guten Morgen zusammen,

ich habe eine Exceltabelle, die nach einer Nummerierung sortiert ist.
Leider fehlen zwischendurch immer mal wieder zahlen: 0654, 0655, 0658, 0659

Wie kann ich am schnellsten mit wenig Aufwand die Zwischenzeilen/Zahlen hinzufügen?

Vielen Dank und schönes Wochenende.

MfG
Marcel

Content-Key: 8108250676

Url: https://administrator.de/contentid/8108250676

Printed on: July 18, 2024 at 20:07 o'clock

Member: Kraemer
Kraemer Aug 11, 2023 at 06:29:41 (UTC)
Goto Top
Morgen,

kommt ganz darauf an, ob die führenden nullen im Feld stehen, oder nicht.
Wenn nicht: https://www.tabellenexperte.de/fehlende-zahlen-in-einer-liste-finden/
Wenn doch: VBA-Skript schreiben

Gruß
Member: oesi1989
oesi1989 Aug 11, 2023 at 06:46:14 (UTC)
Goto Top
Die führenden Nullen müssen dabei sein
Member: kpunkt
kpunkt Aug 11, 2023 at 06:56:03 (UTC)
Goto Top
Dann entfern eben erst führenden Nullen und füg sie hinterher wieder ein.
Member: Kraemer
Kraemer Aug 11, 2023 at 07:49:51 (UTC)
Goto Top
Zitat von @oesi1989:

Die führenden Nullen müssen dabei sein

schon klar. Die Frage die sich stellt ist eben: Stehen die Nullen mit im Feld oder ist das nur eine Formatierung...
Mitglied: 7907292512
7907292512 Aug 11, 2023 updated at 08:22:02 (UTC)
Goto Top
Sind die Zellen als Text formatiert, oder wird die führende Null durch das Zellformat hinzugefügt (STRG+1)?

Wenn die als Text formatiert sind dann erste Zelle der Serie markieren und folgendes Makro abfeuern:
Sub CompleteSeriesText()
    Dim intNum As Integer, intRow As Integer, intCol as Integer
    intRow = Selection.Row
    intCol = Selection.Column
    With ActiveSheet
        While .Cells(intRow, intCol).Value <> ""  
            If IsNumeric(.Cells(intRow, intCol).Value) Then
                intNum = CInt(.Cells(intRow, intCol).Value)
                If intNum + 1 < CInt(.Cells(intRow + 1, intCol).Value) Then
                    .Cells(intRow + 1, intCol).EntireRow.Insert xlShiftDown
                    .Cells(intRow + 1, intCol).Value = Right("00000" & (intNum + 1), Len(.Cells(intRow, intCol).Value))  
                End If
            End if
            intRow = intRow + 1
        Wend
    End With
End Sub

Wenn die Zellen nur durch Formatierung die führende Null bekommen und sie selbst Zahlen sind dann dieses (auch vorher wieder die erste Zelle der Serie markieren)
Sub CompleteSeriesNum()
    Dim intNum As Integer, intRow As Integer, intCol As Integer
    intRow = Selection.Row
    intCol = Selection.Column
    With ActiveSheet
        While .Cells(intRow, intCol).Value <> ""  
            If IsNumeric(.Cells(intRow, intCol).Value) Then
                intNum = .Cells(intRow, intCol).Value
                If intNum + 1 < CInt(.Cells(intRow + 1, intCol).Value) Then
                    .Cells(intRow + 1, intCol).EntireRow.Insert xlShiftDown
                    .Cells(intRow + 1, intCol).Value = intNum + 1
                End If
            End if
            intRow = intRow + 1
        Wend
    End With
End Sub

Done.

Gruß Siddius
Member: oesi1989
oesi1989 Aug 11, 2023 at 08:02:53 (UTC)
Goto Top
VBA Skript schreiben hört sich aber kompliziert an. ungefähre Vorlage ggf.?
Member: StefanKittel
StefanKittel Aug 11, 2023 at 08:02:58 (UTC)
Goto Top
Hallo,

oder Du fügst eine leere Spalte neben der Nummer hinzu und verwendest eine Formel.
Darin vergleichst Du den Ist- und Soll-Wert. Das ist meist einfacher als VBA.

Stefan
Mitglied: 7907292512
7907292512 Aug 11, 2023 updated at 08:09:07 (UTC)
Goto Top
Zitat von @oesi1989:
VBA Skript schreiben hört sich aber kompliziert an. ungefähre Vorlage ggf.?
s.o.
Member: NordicMike
NordicMike Aug 11, 2023 at 08:18:51 (UTC)
Goto Top
Manchmall ist es schneller per Hand. Wie StefanKittel schon andeutete, eine Spalte hinzufügen und per Formel eine Rechnung machen. Wert in aktueller Zeile - (minus) Wert in letzter Zeile ergibt ein Ergebnis von 1. Sollte der Wert höher sein, fehlt dazwischen eine Zahl. Dann hat man es schnell im Blick wo eine Zeile hinzugefügt werden muss.

Wenn man dann noch viel Lust hat, scriptet man sich etwas, das die Ergebnisspalte auf >1 prüft und die Zeilen automatisch hinzufügt.
Member: Kraemer
Kraemer Aug 11, 2023 at 08:43:59 (UTC)
Goto Top
Zitat von @StefanKittel:

oder Du fügst eine leere Spalte neben der Nummer hinzu und verwendest eine Formel.
Darin vergleichst Du den Ist- und Soll-Wert. Das ist meist einfacher als VBA.

das funktioniert nicht, wenn führende Nullen in den Zellen stehen

Die Lösung hat er doch schon auf dem Präsentierteller - entweder als bedingte Formatierung oder eben als VBA (der Code wurde auch schon geliefert). Umsetzen muss er schon selbst...!
Mitglied: 7907292512
7907292512 Aug 11, 2023 updated at 09:37:20 (UTC)
Goto Top
Zitat von @Kraemer:
das funktioniert nicht, wenn führende Nullen in den Zellen stehen
Geht nicht, gibts nicht. Auch Text lässt sich in einer Formel eine Zahl umwandeln (WERT()).

Aber der TO hat ja wie du auch schon sagst genügend Input face-smile. Es ist ja eh Freitag.
Member: Kraemer
Kraemer Aug 11, 2023 at 09:48:37 (UTC)
Goto Top
Zitat von @7907292512:

Geht nicht, gibts nicht. Auch Text lässt sich in einer Formel eine Zahl umwandeln (WERT()).
ach ja stimmt. Der Wert wird ja nicht weiterverarbeitet somit wäre das gerade für bedingte Formatierung eine einfache Lösung.
War ne harte Woche... face-wink