Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelle löschen, wenn keine Zahl

Forumthread: Zelle löschen, wenn keine Zahl

Zelle löschen, wenn keine Zahl
13.06.2009 13:58:00
Sabine
Hallo liebes Forum,
in Spalte F befinden sich fünfstellige PLZ. Leider befinden sich dort aber auch andere Werte (in der Regel sind dies Texte).
Wie kann ich die Zellinhalte löschen, die der fünstelligen PLZ sind. Und das so einfach wie möglich, da ich ca. 6000 Einträge habe.
Wichtig: Es darf nur der Zellinhalt dieser Zelle in Spalte F gelöscht werden.
Kann mir jemand weiterhelfen?
LG
Sabine
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle löschen, wenn keine Zahl
13.06.2009 14:12:16
Josef
Hallo Sabine,
probier mal.
Sub sabine()
  Dim rng As Range, rngDel As Range
  
  For Each rng In Range("F2:F" & Cells(Rows.Count, 6).End(xlUp).Row)
    If Not IsNumeric(rng) Or Len(rng) <> 5 Then
      If rngDel Is Nothing Then
        Set rngDel = rng
      Else
        Set rngDel = Union(rng, rngDel)
      End If
    End If
  Next
  
  If Not rngDel Is Nothing Then rngDel.ClearContents
  
  Set rngDel = Nothing
  Set rng = Nothing
End Sub


Gruß Sepp

Anzeige
AW: Zelle löschen, wenn keine Zahl
13.06.2009 14:23:58
Sabine
Hallo Sepp,
das klappt prima.
Danke Dir!
Schönes Wochenende
Sabine
AW: Zelle löschen, wenn keine Zahl
13.06.2009 14:21:54
Tino
Hallo,
hier mal eine Version zum testen.
Ich gehe mal davon aus, dass in Zeile 1 eine Überschrift enthalten ist.

Sub Loesche_Text()
Dim Bereich As Range
Dim MyAr
Dim A As Long
Set Bereich = Range("F2", Cells(Rows.Count, 6).End(xlUp))
MyAr = Bereich
For A = 1 To UBound(MyAr)
If Len(MyAr(A, 1))  5 Or Not IsNumeric(MyAr(A, 1)) Then
MyAr(A, 1) = ""
End If
Next A
Bereich = MyAr
End Sub


Gruß Tino

Anzeige
OT: @HWH - Forum sieht w. u. merkwürdig aus,...
13.06.2009 15:03:05
Luc:-?
...nämlich ab hier!
Gruß Luc :-?
was meinst Du, kann nichts erkennen?
13.06.2009 15:12:14
Tino
Hallo,
verwende zurzeit IE8 und kann nichts Merkwürdiges erkennen.
Gruß Tino
Runter Scrollen! Der verlinkte Thread tanzt...
13.06.2009 15:35:45
Luc:-?
...plötzlich aus der Reihe und danach haben alle Threads zusätzliche Leerzeilen, jedenfalls i.m.FireFox, Tino.
HWH scheint am Forum zu arbeiten (2 Testbeiträge zum allerletzten Thread)...
SchöWE, Luc :-?
Anzeige
Ah, jetzt ist's wieder OK! Gruß owT
13.06.2009 15:37:17
Luc:-?
:-?
AW: OT: @HWH - Forum sieht w. u. merkwürdig aus,...
13.06.2009 15:36:50
Hans
Hallo Leute,
ihr habt Recht.
In den Thread Ziffernfragment zählen innerhalb eines Zeitraums hat sich aus unerfindlichen Gründen eine störende Zeichenfolge eingeschlichen.
Ich musste den Thread leider löschen.
gruss hans
Mein Link geht aber noch, Hans! Gruß owT
13.06.2009 15:39:29
Luc:-?
:-?
Anzeige
AW: Mein Link geht aber noch, Hans! Gruß owT
13.06.2009 15:41:46
Hans
... richtig, der Link funktioniert noch. Allerdings befindet sich der Link nicht mehr in der Liste. Die problematische Zeichenfolge befand sich in der Liste, nicht in den Beiträgen.
gruss hans
Aha, danke, Hans! Schönes WE! owT
13.06.2009 17:18:41
Luc:-?
:-?
@ Franz
13.06.2009 20:58:19
Sabine
Hallo Franz,
darf ich Dich noch um einen Gefallen bitten. Könntest Du das Makro dahingehend erweitern,
dass dann auch gleichzeitig der Inhalt derf Spalte C gelöscht wird.
Vielen lieben Dank!
LG
Sabine
Anzeige
@ Sepp: Ich meinte Dich, sorry!
13.06.2009 21:54:46
Sabine
Habe mich in den Vornamen vertan. Tut mir leid.
Darf ich Dich noch um einen Gefallen bitten. Könntest Du das Makro dahingehend erweitern,
dass dann auch gleichzeitig der Inhalt derf Spalte C gelöscht wird.
Vielen lieben Dank!
LG
Sabine
AW: @ Sepp: Ich meinte Dich, sorry!
13.06.2009 22:00:04
Josef
Hallo Sabine,
das geht so.
Sub sabine()
  Dim rng As Range, rngDel As Range
  
  For Each rng In Range("F2:F" & Cells(Rows.Count, 6).End(xlUp).Row)
    If Not IsNumeric(rng) Or Len(rng) <> 5 Then
      If rngDel Is Nothing Then
        Set rngDel = Union(rng, rng.Offset(0, -3))
      Else
        Set rngDel = Union(Union(rng, rng.Offset(0, -3)), rngDel)
      End If
    End If
  Next
  
  If Not rngDel Is Nothing Then rngDel.ClearContents
  
  Set rngDel = Nothing
  Set rng = Nothing
End Sub

Gruß Sepp

Anzeige
AW: @ Sepp: Ich meinte Dich, sorry!
13.06.2009 22:05:06
Sabine
Hallo Sepp,
vielen Dank für Deine schnelle Hilfe!
Schönen Abend noch
Sabine
;

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

Infobox / Tutorial

Zelle löschen, wenn keine Zahl in Excel


Schritt-für-Schritt-Anleitung

Um den Zellinhalt in Spalte F zu löschen, wenn es sich nicht um eine fünfstellige PLZ handelt, kannst du ein einfaches VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Sub Loesche_Text()
       Dim Bereich As Range
       Dim MyAr
       Dim A As Long
       Set Bereich = Range("F2", Cells(Rows.Count, 6).End(xlUp))
       MyAr = Bereich
       For A = 1 To UBound(MyAr)
           If Len(MyAr(A, 1)) <> 5 Or Not IsNumeric(MyAr(A, 1)) Then
               MyAr(A, 1) = ""
           End If
       Next A
       Bereich = MyAr
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, wähle das Makro Loesche_Text aus und klicke auf Ausführen.

Das Makro durchsucht die Zellen in Spalte F und löscht den Inhalt, wenn die Zelle keine fünfstellige Zahl enthält.


Häufige Fehler und Lösungen

  • Fehler: "Typenmissbrauch"

    • Überprüfe, ob die Zellen in Spalte F Text enthalten, der als Zahl interpretiert werden kann. Stelle sicher, dass nur gültige Zahlen vorhanden sind.
  • Fehler: "Index außerhalb des Bereichs"

    • Dieser Fehler kann auftreten, wenn die Daten in Spalte F leer sind. Stelle sicher, dass du mindestens eine gültige Zahl in der Spalte hast.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die WENN-Funktion in Excel nutzen:

  1. Füge in eine leere Spalte (z.B. G) folgende Formel ein:

    =WENN(ODER(NICHT(ISTZAHL(F2));LÄNGE(F2)<>5);"";F2)
  2. Ziehe die Formel nach unten, um sie auf alle relevanten Zellen anzuwenden.

  3. Kopiere die Ergebnisse und füge sie als Werte in Spalte F ein, um die alten Daten zu ersetzen.


Praktische Beispiele

Wenn du beispielsweise die Zellen in Spalte F von F2 bis F6000 prüfen möchtest, stelle sicher, dass du den Bereich im VBA-Code entsprechend anpasst:

Set Bereich = Range("F2:F6000")

Das sorgt dafür, dass alle 6000 Einträge untersucht werden. Du kannst die Ergebnisse dann nach Bedarf anpassen.


Tipps für Profis

  • Nutze die Fehlerüberprüfung in Excel, um sicherzustellen, dass nur gültige PLZ eingegeben werden.
  • Schreibe deine eigenen Makros, um Routineaufgaben zu automatisieren und so Zeit zu sparen.
  • Vermeide die Verwendung von Select in deinen Makros, um die Ausführungsgeschwindigkeit zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um auch Spalte C zu löschen? Du kannst den folgenden Code verwenden, um auch die Zellen in Spalte C zu löschen:

If Not IsNumeric(rng) Or Len(rng) <> 5 Then
    rngDel = Union(rng, rng.Offset(0, -3))
End If

2. Kann ich das Makro auf andere Spalten anwenden? Ja, ändere einfach den Bereich in Set Bereich = Range("X2:X"), wobei X für die gewünschte Spalte steht.

3. Gibt es eine Möglichkeit, die Zellen in einer bestimmten Farbe anzuzeigen? Ja, du kannst das Format einer Zelle ändern, indem du die Interior.Color-Eigenschaft im VBA-Code verwendest.

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