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

Forumthread: Zelleninhalt löschen VBA

Zelleninhalt löschen VBA
09.11.2016 13:57:06
Erik
Hallo zusammen,
habe folgenden Code, der nicht ganz richtig funktioniert:
For Each zell In rng
If wsV.Range("B27").Value = zell.Value Then zell.Offset(0, 18) = "a": zell.Offset(0, 19) = ""
Next
Zelle 18 soll mit einem a gefüllt werden
der Inhalt von Zelle 19 soll gelöscht werden.
was muß hinter den Doppelpunkt.
Hoffe mir kann jemand helfen
Gruß
Erik
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalt löschen VBA
09.11.2016 14:08:04
Daniel
Hi
ich würde das IF-Then immer mehrzeilig machen, wenn nach dem Then mehr als ein Befehl folgt, das ist einfach übersichtlicher.
For Each zell In rng
If wsV.Range("B27").Value = zell.Value Then
zell.Offset(0, 18) = "a"
zell.Offset(0, 19) = ""
end if
Next
wenn Einzeilig geht auch, dann aber so:
For Each zell In rng
If wsV.Range("B27").Value = zell.Value Then zell.Offset(0, 18).Resize(, 2) = Array("a", "")
Next
btw, was meinst du genau mit "funktioniert nicht richtig"
das solltest du besser beschreiben, es gibt sehr viele verschiedene Arten, auf die etwas nicht richtig funktionieren kann.
dann wäre da noch die Frage, welche Zelle du kontret bearbeiten willst:
die Zellenn die um 18 bzw 19 Zellen von zell nach rechts versetzt liegen, oder die Zellen in Spalte R und S in der jeweiligen Zeile?
Gruß Daniel
Anzeige
AW: Zelleninhalt löschen VBA
09.11.2016 14:17:19
Erik
Hallo Daniel,
in Zelle S soll der Buchstabe a gesetzt werden
in Zelle T ist bereits ein a gesetzt, diese Zelle soll geleert werden.
der Befehl
zell.Offset(0, 19) = ""
leert die Zelle nicht, ich weiss aber nicht wie der Befehl heißt.
Gruß
Erik
AW: Zelleninhalt löschen VBA
09.11.2016 15:14:57
Erik
Hallo nochmals,
habe den Code versucht so zu ändern
For Each zell In rng
If wsV.Range("B27").Value = zell.Value Then zell.Offset(0, 18) = "a"
Cells(0, 19).Clear
Next
geht aber auch nicht ! Anwendungs oder Objektdefinierter Fehler !
Was ist falsch
Gruß
Eri
Anzeige
AW: Zelleninhalt löschen VBA
09.11.2016 15:22:04
Daniel
Hi
wenn die Spalten R und S bearbeitet werden sollen, dann ist das mit dem Offset nicht so ganz einfach, weil, weil Offest ja immer einen Versatz angibt und nicht die absolute Spalte.
wenn dann so:
Zell.Worksheet.Cells(Zell.Row, 18) = "a"
Zell.Worksheet.Cells(Zell.Row, 19).ClearContents
oder so:
Zell.Offset(0, 18 - Zell.column) = "a"
Zell.Offset(0, 19 - Zell.Column).ClearContents

die Zeile
Cells(0, 19).Clear
ist einfach nur kompletter Unsinn.
Gruß Daniel
Anzeige
AW: Zelleninhalt löschen VBA
09.11.2016 16:26:55
Erik
Hallo Daniel,
Danke für Deinen Ansatz!
Es funktioniert.
Ich kenn mich halt mit VBA überhaupt nicht aus.
Trotzdem
vielen lieben Dank für Deine Hilfe.
Gruß
Erik

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zelleninhalt mit VBA löschen


Schritt-für-Schritt-Anleitung

Um den Zelleninhalt in Excel mithilfe von VBA zu löschen, kannst du folgendes Vorgehen nutzen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Neues Modul hinzufügen: Klicke mit der rechten Maustaste auf das Projekt im Projektfenster und wähle Einfügen > Modul.
  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    Sub ZelleninhaltLoeschen()
        Dim wsV As Worksheet
        Dim rng As Range
        Dim zell As Range
    
        Set wsV = ThisWorkbook.Sheets("DeinBlattname") ' Blattname anpassen
        Set rng = wsV.Range("A1:A10") ' Bereich anpassen
    
        For Each zell In rng
            If wsV.Range("B27").Value = zell.Value Then
                zell.Offset(0, 18).Value = "a" ' Zelle S
                zell.Offset(0, 19).ClearContents ' Zelle T leeren
            End If
        Next zell
    End Sub
  4. Anpassen des Codes: Stelle sicher, dass du den Blattnamen und den Zellbereich anpasst, je nach deinen Anforderungen.
  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um die Zelleninhalte zu löschen.

Häufige Fehler und Lösungen

  • Fehler: Anwendungs- oder objektdefinierter Fehler
    Lösung: Überprüfe die Zellreferenzen und stelle sicher, dass der Bereich korrekt definiert ist. Zum Beispiel sollte Cells(0, 19).Clear in Cells(zell.Row, 19).ClearContents geändert werden.

  • Fehler: Zelle wird nicht geleert
    Lösung: Stelle sicher, dass du ClearContents verwendest, um den Inhalt der Zelle zu löschen, anstatt den Zelleninhalt direkt zu setzen.


Alternative Methoden

Eine alternative Methode zum Löschen des Zelleninhalts ist die Verwendung von Resize:

For Each zell In rng
    If wsV.Range("B27").Value = zell.Value Then
        zell.Offset(0, 18).Resize(1, 1).Value = "a" ' Setze "a" in Zelle S
        zell.Offset(0, 19).Resize(1, 1).ClearContents ' Leere Zelle T
    End If
Next zell

Diese Methode ist besonders nützlich, wenn du mehrere Zellen gleichzeitig bearbeiten möchtest.


Praktische Beispiele

  1. Bestimmte Zelleninhalte löschen: Wenn du nur Inhalte in einer bestimmten Zeile löschen möchtest, kannst du den Bereich wie folgt definieren:

    Set rng = wsV.Range("R1:R10") ' Beispiel für Spalte R
  2. Formatierung beibehalten: Um die Formatierung beizubehalten, verwende ClearContents anstelle von Clear, wenn du den Inhalt löschen möchtest.


Tipps für Profis

  • Code kommentieren: Kommentiere deinen Code, um die Übersichtlichkeit zu erhöhen.
  • Fehlersuche: Nutze die Debugging-Tools im VBA-Editor, um Fehler schnell zu identifizieren.
  • Verwendung von Variablen: Speichere oft verwendete Zellen oder Bereiche in Variablen, um die Lesbarkeit und Wartbarkeit deines Codes zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich den Inhalt einer einzelnen Zelle löschen?
Du kannst einfach den Befehl Range("A1").ClearContents verwenden, um den Inhalt von Zelle A1 zu löschen.

2. Was ist der Unterschied zwischen Clear und ClearContents?
Clear entfernt sowohl den Inhalt als auch die Formatierung, während ClearContents nur den Inhalt entfernt und die Formatierung beibehält.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige