Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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

Lösche Zellen A bis L, wenn in Spalte M in der Zeile eine 0

Lösche Zellen A bis L, wenn in Spalte M in der Zeile eine 0
12.03.2024 08:41:30
Alma27
Hallo liebe Spezialisten,

ich habe folgendes Problem: Aus einer Datenbank erhalte ich eine Menge Zeilen mit Informationen. In der Spalte M wird mir dazu eine Einschätzung gegeben, ob die Zeile für mein Vorhaben relevant ist.
Ich hätte gerne ein Makro, das die Spalte M bis zur letzten beschriebenen Zelle durchgeht und in allen Zeilen, in denen in Spalte M eine "0" steht, die Zellen A-L leert, aber nicht löscht.

Geht so etwas?

Für eure Mühe im Vorfeld vielen Dank.

Viele Grüße
Alma27

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lösche Zellen A bis L, wenn in Spalte M in der Zeile eine 0
12.03.2024 08:55:52
hary
Moin
Probier mal:
Sub loeschen()

Dim i As Long, lz As Long
Dim rDel As Range
Application.ScreenUpdating = False
lz = Cells(Rows.Count, 13).End(xlUp).Row
For i = 1 To lz
If Cells(i, 13) = 0 Then
If rDel Is Nothing Then
Set rDel = Cells(i, 1).Resize(1, 12)
Else
Set rDel = Union(rDel, Cells(i, 1).Resize(1, 12))
End If
End If
Next i
If Not rDel Is Nothing Then rDel.ClearContents
Application.ScreenUpdating = True
End Sub

gruss hary
Anzeige
AW: Lösche Zellen A bis L, wenn in Spalte M in der Zeile eine 0
12.03.2024 09:00:54
Alma27
Das läuft perfekt. Vielen Dank - für die Hilfe und für die sehr schnelle Rückmeldung!
AW: Lösche Zellen A bis L, wenn in Spalte M in der Zeile eine 0
12.03.2024 08:57:52
Pierre
Hallo Alma,

probier mal folgendes Makro (z. B. mit Button verknüpft):
Sub InhalteLeeren()


Dim loeschen As Double

For loeschen = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Range("M" & loeschen).Value = "0" Then
Range("A" & loeschen, "L" & loeschen).ClearContents
End If
Next loeschen

End Sub


Gruß Pierre
AW: Lösche Zellen A bis L, wenn in Spalte M in der Zeile eine 0
12.03.2024 09:10:04
Alma27
Hallo Pierre,
Ich hab bei deiner Version Cells(Rows.Count, 1) auf 13 geändert, also auf die Spalte M, weil Spalte A nur hin und wieder Daten enthält. Aber funzt genauso gut.

Vielen Dank auch Dir für die schnelle Hilfe.

Gruß
Alma27
Anzeige
bitte, gerne ...
12.03.2024 09:13:17
Pierre
Hi,

sorry, das habe ich übersehen. Hatte da ein vorgefertigtes Makro hier rum fliegen, was ich zwar grundsätzlich auf deine Bedürfnisse angepasst habe, aber diese Zeile nicht.
Wenn ich dein Vorhaben aber richtig verstehe, dürfte auch Spalte M als Überprüfung nicht sicher sein, wenn genau dort ja nicht immer eine 0 eingetragen ist.
Somit solltest du eine Spalte wählen, die sicher immer befüllt ist.

Gruß Pierre
AW: Lösche Zellen A bis L, wenn in Spalte M in der Zeile eine 0
12.03.2024 08:58:48
daniel
Hi
du kannst den Autofilter verwenden.
über den Autofilter ausgeblendete Zeilen werden nicht bearbeitet.
Filtere also in der Tabelle in Spalte M nach 0 und leere dann die Spalten A-L.
dann Filter wieder aufheben.

als makro so.

with activesheet.usedrange

.Autofilter field:=13, Criteria1:="0"
.Offset(1, 0).Resize(, 12).specialCells(xlcelltypevisible).clearcontents
.Autofilter
end with


Gruß Daniel
Anzeige
AW: Lösche Zellen A bis L, wenn in Spalte M in der Zeile eine 0
12.03.2024 09:11:18
Alma27
Hallo Daniel,

das ist auch eine Idee, aber den Autofilter brauche ich später schon. Da will ich nix durcheinander schmeißen.
Vielen Dank!
AW: Lösche Zellen A bis L, wenn in Spalte M in der Zeile eine 0
12.03.2024 09:50:33
daniel
Hi
ohne autofilter vielleicht so, sofern die 0 nicht durch eine Formel erzeugt wird sondern ein fester wert ist
je nachdem was in den anderen Zellen steht, könnte es auch einfacher gehen.

with columns(13)

if worksheetfunction.countif(.cells, 0) > 0 then
.Replace "0", True, xlwhole
with .SpecialCells(xlcelltypeconstants, 4)
intersect(Range("A:L"), .EntireRow).clearContents
.Value = 0
end with
end if
end with


Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige