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

Forumthread: 6-stellige Zahlen in Spalte suchen

6-stellige Zahlen in Spalte suchen
15.11.2004 16:04:16
Torsten
Hallo zusammen,
in angefügter Datei habe ich ein kniffliges Problem, daß ich mit meinen bescheidenen VBA-Kenntnissen leider nicht lösen kann.
In der angehängten Datei sind zwei WS, die zum einen den IST-Zustand nach dem Herunterladen aus SAP/PCA aufzeigt und zum anderen den SOLL-Zustand, wie ich mir die Auflistung nachher vorstelle (ohne Farbe, die ist nur zur Verdeutlichung).
Die 7-stelligen Zahlen sind Kostenarten, die 6-stelligen sind die Kostenstellen.
Folgendes möchte ich gerne erreichen:
Zunächst soll eine Spalte neben die Spalte A eingefügt werden.
Das Makro sollte dann die Spalte B durchsuchen, bis eine 6-stellige Zahl gefunden wird. Diese Zahl soll in die soeben eingefügte Spalte A eingefügt werden und zwar neben die 7-stelligen Zahlen, die vor der gefundenen 6-stelligen stehen (Excel muß also bei der Suche die Zeilen mitzählen, bis die 6-stellige Zahl gefunden wird). Dann soll die Zeile mit der 6-stelligen Zahl gelöscht werden und die Suche nach der nächsten 6-stelligen geht weiter.
Ich hoffe, daß ich mich verständlich ausgedrückt habe und Ihr mir mit Hilfe der beigefügten Datei weiterhelfen könnt.
Vorab schon einmal vielen Dank für Eure Hilfe.
Gruß
Torsten
https://www.herber.de/bbs/user/13500.xls
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: 6-stellige Zahlen in Spalte suchen
Galenzo
Hallo,
das Ergebnis meiner Bastelei:
&ltpre&gt
Sub Makro1()
Dim iRowA As Integer
Dim iRowB As Integer
iRowB = Cells(Rows.Count, 1).End(xlUp).Row
Columns("A:A").EntireColumn.Insert Shift:=xlToRight
Dim i%
For i = 2 To iRowB
If Len(Cells(i, 2)) = 6 Then
iRowA = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(iRowA + 1, 1), Cells(i - 1, 1)) = Cells(i, 2)
Rows(i).Delete
End If
Next
End Sub&lt/pre&gt
Viel Erfolg!
..und vorher die Daten sichern :-)
Anzeige
AW: erledigt - mT
Torsten
Hi Galenzo,
vielen Dank für Deine Hilfe. Ich bin echt beeindruckt von Deiner "Bastelgeschwindigkeit". :-)
Nach einem ersten Test sieht's genauso aus, wie ich's mir vorgestellt habe.
Nochmals schönen Dank für Deine Unterstützung.
Gruß
Torsten
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

6-stellige Zahlen in Excel suchen und bearbeiten


Schritt-für-Schritt-Anleitung

Um 6-stellige Zahlen in einer Excel-Spalte zu suchen und die gewünschten Operationen durchzuführen, folge diesen Schritten:

  1. Öffne Deine Excel-Datei und stelle sicher, dass die Daten in Spalte B enthalten sind (wie im Forum beschrieben).

  2. Füge eine neue Spalte ein:

    • Klicke mit der rechten Maustaste auf die Spalte A und wähle „Spalte einfügen“.
  3. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  4. Füge ein neues Modul hinzu:

    • Klicke auf „Einfügen“ > „Modul“.
  5. Kopiere und füge den folgenden Code ein:

    Sub Makro1()
       Dim iRowA As Integer
       Dim iRowB As Integer
       iRowB = Cells(Rows.Count, 2).End(xlUp).Row
       Columns("A:A").EntireColumn.Insert Shift:=xlToRight
       Dim i%
       For i = 2 To iRowB
           If Len(Cells(i, 2)) = 6 Then
               iRowA = Cells(Rows.Count, 1).End(xlUp).Row
               Range(Cells(iRowA + 1, 1), Cells(i - 1, 1)) = Cells(i, 2)
               Rows(i).Delete
           End If
       Next
    End Sub
  6. Führe das Makro aus:

    • Drücke F5 oder wähle „Ausführen“ im Menü.

Das Makro wird nun die 6-stelligen Zahlen in Spalte B suchen und sie in die neu eingefügte Spalte A neben den 7-stelligen Zahlen einfügen. Alle gefundenen 6-stelligen Zahlen werden anschließend gelöscht.


Häufige Fehler und Lösungen

  • Der VBA-Code funktioniert nicht:

    • Stelle sicher, dass Du die richtige Spalte angegeben hast. Der Code ist für Spalte B ausgelegt.
  • Excel gibt eine Fehlermeldung aus:

    • Überprüfe, ob alle Zellen in Spalte B tatsächlich Zahlen sind. Nicht-numerische Werte können den Code stören.
  • Die 6-stelligen Zahlen werden nicht gefunden:

    • Stelle sicher, dass die Formatierung der Zellen korrekt ist. Manchmal können Zahlen als Text formatiert sein.

Alternative Methoden

Wenn Du keine Makros verwenden möchtest, kannst Du auch die Funktionen „Suchen“ und „Ersetzen“ in Excel nutzen. Hier ist, wie Du es machst:

  1. Markiere die Spalte B.
  2. Gehe zu „Start“ > „Suchen und Auswählen“ > „Ersetzen“.
  3. Gib in das Suchfeld eine 6-stellige Zahl ein.
  4. Verwende die „Ersetzen“-Funktion, um sie gegebenenfalls zu ersetzen oder zu entfernen.

Diese Methode ist einfacher, aber weniger automatisiert als die VBA-Lösung.


Praktische Beispiele

Angenommen, Du hast folgende Werte in Spalte B:

1234567
654321
123456
7890123

Nach dem Ausführen des Makros wird Spalte A wie folgt aussehen:

654321
123456

Die 6-stelligen Zahlen „654321“ und „123456“ wurden erfolgreich in Spalte A eingefügt.


Tipps für Profis

  • Backup erstellen: Bevor Du Makros ausführst, erstelle immer ein Backup Deiner Daten.
  • Verwendung von Variablen: Überlege, Variablen zu benennen, um den Code lesbarer zu machen.
  • Fehlerbehandlung einfügen: Füge On Error Resume Next in Deinen Code ein, um unerwartete Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Was ist eine 6-stellige Zahl?
Eine 6-stellige Zahl ist eine Zahl, die aus genau sechs Ziffern besteht, wie z.B. 123456 oder 654321.

2. Wie kann ich einen Zahlengenerator für 6-stellige Zahlen verwenden?
Du kannst einen einfachen Zahlengenerator in Excel erstellen, indem Du die Funktion =RANDBETWEEN(100000,999999) verwendest, um zufällige 6-stellige Zahlen zu generieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige