Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1776to1780
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellinhalt löschen mit VBA

Zellinhalt löschen mit VBA
24.08.2020 14:21:22
Klara
Liebe Profis,
ihr habt mir in der Vergangenheit schon richtig gut geholfen, deshalb wende ich mich mit einem neuen Problem an euch.
Hier meine Problemstellung:
In Spalte A befinden sich Projektbezeichnungen, in den Spalten B bis G befinden sich Abkürzungen für Projektschritte.
Mich interessieren nur die Schritte "A", "B" oder "C".
Nun würde ich gerne die Inhalte der Zellen A bis G löschen wenn weder "A", "B" noch "C" in den Spalten vorkommen.
Die kompletten Zeilen können nicht gelöscht werden, da sich in den Spalten M bis R noch andere wichtige Informationen befinden können.
Ich habe mich schon versucht in das Thema über frühere Beiträge einzulesen, aber leider nichts passendes gefunden.
Daher hoffe ich, dass ihr mir da weiterhelfen könnt.
Grüße
Klara

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalt löschen mit VBA
24.08.2020 14:57:53
UweD
Hallo
in ein Modul

Sub Löschen()
Dim RR As Integer, Spalten As Range, RNG As Range, WF, i As Integer
Set WF = WorksheetFunction
With Sheets("Tabelle1")
RR = .Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile des gesamten Blattes
Set Spalten = .Columns("B:G")
For i = 2 To RR
Set RNG = Intersect(Spalten, Rows(i)) ' Schnittmenge aus Zeile und Spalten
If WF.CountIf(RNG, "A") + WF.CountIf(RNG, "B") + WF.CountIf(RNG, "C") = 0 Then
RNG.ClearContents
End If
Next
End With
End Sub

LG UweD
AW: Zellinhalt löschen mit VBA
24.08.2020 15:06:20
UweD
Hallo nochmal
Spalte A sollte ja auch noch mit gelöscht werden...
Dann so
RNG.Offset(0, -1).Resize(1, Spalten.Columns.Count + 1).ClearContents
Anzeige
AW: Zellinhalt löschen mit VBA
24.08.2020 15:35:31
Klara
Wow vielen Dank Uwe!
Das ging echt schnell und funktioniert perfekt.
Eine Frage hätte ich noch, und zwar bin ich bei der Lösungssuche auf den folgenden Code gestoßen:
Range("A:G").Select
Selection.SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
dieser fast mir die Inhalte so zusammen, dass es keine Leerzeilen gibt.
Mein Problem ist, dass ich in Zeile H noch einen Sverweis habe, welcher mir nach Ausführung diesen Codes einen Bezugfehler anzeigt. Gibt es einen Weg dies zu umgehen?
Liebe Grüße
Klara
AW: Zellinhalt löschen mit VBA
24.08.2020 15:43:06
UweD
Hi
Das löscht den Bereich und schiebt die nachfolgenden Zeilen hoch. Dann gibt es Bezugfehler, weil die Zeilen fehlen.
Anstelle von

Range("A:G").Select
Selection.SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp

Range("A:G").SpecialCells(xlCellTypeBlanks).ClearContents

Hier werden nur die Werte gelöscht
LG UweD
Anzeige
AW: Zellinhalt löschen mit VBA
24.08.2020 16:08:30
Klara
Hi,
da passiert bei mir leider nichts.
Ich wollte dass der Bereich sozusagen "gestaucht" wird, und die beschrifteten Zellen untereinander ohne Leerzeilen stehen.
Liebe Grüße
Klara
AW: Zellinhalt löschen mit VBA
24.08.2020 16:07:36
Daniel
HI
das ist ein Problem mit dem Aufbau der Tabelle.
du beziehst dich in deinem SVerweis auf eine Zeile, die gelöscht wird.
generell sollte man in Tabellen, in denen Zeilen gelöscht werden oder die umsortiert werden, vermeiden Zellbezüge auf Einzelzellen außerhalb der eigenen Zeile zu verwenden.
denn wenn diese Bezugszeile gelöscht wird aber nicht die Zeile mit der Formel, dann gibt die Formel den Bezug-Fehler aus.
wenn man aber so einen Bezug auf eine benachbarte Zeile braucht und den Bezugfehler vermeiden will, muss man den direkten Zellbezug durch einen berechneten ersetzen.
Beispiel:
du hast in Zeile 11 die Formel: =SVerweis(A10;...)
wenn Zeile 10 gelöscht wird, soll statt des Bezugfehlers die Zelle A9 angezogen werden.
Erstze das A10 in der Formel durch: =SVerweis(Index(A:A;Zeile()-1);...
ob dann aber ein sinnvolles Ergebnis rauskommt, musst du prüfen.
Gruß Daniel
Anzeige
AW: Zellinhalt löschen mit VBA
24.08.2020 16:18:26
Klara
Hi Daniel,
das hat funktioniert.
Ein großes Dankeschön auch an dich!
Liebe Grüße
Klara

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige