Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1848to1852
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

leere Zellen löschen VBA

leere Zellen löschen VBA
23.09.2021 14:29:28
maylmz
Hey wieder ich,..
in einer Zeile werden per Formel Datum berechnet.. wenn Wahr dann Datum, wenn Falsch dann leer ""
Nun hätte ich gerne per VBA wenn Zelleninhalt "" dann soll Zelleninhalt einschließlich Formel gelöscht werden.. (Wichtig Zelleninhalt muss von rechts nach links gelöscht werden!)
Betroffen ist Spalte AK4:AY4..
Folgendes konnte ich zusammenbasteln, funktioniert auch, dauert aber eine halbe Ewigkeit ^^ :
<pre>Sub Zelle_loeschen()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(4, 51) = "" Then
Cells(4, 51).Value = ""
End If
If Cells(4, 50) = "" Then
Cells(4, 50).Value = ""
End If
If Cells(4, 49) = "" Then
Cells(4, 49).Value = ""
End If
If Cells(4, 48) = "" Then
Cells(4, 48).Value = ""
usw..
Next i
Application.ScreenUpdating = True
End Sub</pre>
Ihr habt hierfür sicherlich viel viel bessere Vorschläge :D

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: leere Zellen löschen VBA
23.09.2021 14:37:47
Klaus
Hi,
erst sammeln, dann alles auf einmal löschen statt nacheinander!

Sub Makro1()
Dim myRng As Range
For i = 37 To 51
If Cells(4, i).Value = "" Then
If myRng Is Nothing Then
Set myRng = Cells(4, i)
Else
Set myRng = Union(myRng, Cells(4, i))
End If
End If
Next i
myRng.ClearContents
End Sub
LG,
Klaus M.
AW: leere Zellen löschen VBA
23.09.2021 14:50:59
Daniel
Hi
warum machst du die Schleife über die Zeilen, wenn doch nur Zeile 4 betroffen ist.
Damit bearbeitest du ja wiederholt die gleichen Zellen, wobei einmal ja reichen würde.
warum muss von links nach rechts gelöscht werden ?
ein Datum ist eine Zahl, ein "" ist ein Text.
du könntest alle Zellen mit "" als Ergebnis mit folgender Zeile auf einmal in echte Leerzellen verwandeln:

Range("AK4:AY4").SpecialCells(xlcelltypeformulas, 2).ClearContents
oder für ganze Spalten mit allen Zeilen:

Range("AK:AY").SpecialCells(xlcelltypeformulas, 2).ClearContents
wenn wirklch von rechts nach links gelöscht werden muss, dann mach die Schleife über die Spalten.

Dim i as long
for i = 51 to 37 Step -1
if Cells(4, 1).Value = "" then Cells(4, i).ClearContents
Next
wenns dann doch nicht nur eine Zeile ist, dann mit zweiter schleife:

dim Z as long, S as long
for Z = 1 To Cells(Rows.Count, 1).End(xlUp).Row
for S = 51 to 37 step -1
If Cells(Z, S) = "" Then Cells(Z, S).ClearContents
Next
Next
Wenn es tatsächlich notwendig ist, die Zellen nacheinander in dieser Reihenfolge zu leeren, dann bedeuted dass, dass nach jedem Löschen Werte neu berechnet werden müssen, weil sich dann neue konstellationen ergeben.
Wenn das tatsächlich so ist, dann lässt sich dann auch leider nicht mehr viel berschleunigen.
Gruß Daniel
Anzeige
AW: leere Zellen löschen VBA
23.09.2021 15:14:02
maylmz
Hey Daniel,
ich hatte wohl einen Fehler in einer Formel, deshalb habe ich gedacht ich muss zwingend von rechts beginnend löschen, ist aber nicht der Fall..
mit diesem VBA (Range("AK4:AY4").SpecialCells(xlcelltypeformulas, 2).ClearContents) klappt alles wunderbar. Allerdings ist mir aufgefallen, dass auch die dazugehörige untere Zeile 5 mit gelöscht werden muss. Das heißt wenn bsp. Zeile AO4:AY4 gelöscht wird (weil "") dann auch AO5:AY5 löschen.
Gruß, maylmz
AW: leere Zellen löschen VBA
23.09.2021 15:33:19
maylmz
Hat sich geklärt, brauche ich nicht mehr.
Vielen Dank

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige