Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1392to1396
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

Schneller 0 löschen

Schneller 0 löschen
25.11.2014 15:42:39
Ronald
Hallo Zusammen,
kennt jemand einen schnelleren Weg um ans Ziel zu kommen?
Das dauert zulange wenn alle Zellen ausgefüllt sind und 80% eine 0 beinhalten.
Über Hilfe wäre ich wie immer dankbar
Sub null_löschen()
Dim Zelle As Range
a:
For Each Zelle In Range("Z2:BH300")
If Zelle.Value = "0" Then
Zelle.Delete shift:=xlToLeft
GoTo a
End If
Next Zelle
End Sub
LG
Ronny

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schneller 0 löschen
25.11.2014 15:54:24
Zwenn
Hallo Ronald,
das was dabei lange dauert ist das Löschen der einzelnen Zellen und das hochziehen der restlichen, darunter liegenden. Belasse die For Each schleife und schreibe jeden Treffer in ein Array, anschließend löscht du den Inhalt der betreffenden Spalte und schreibst das Array von hinten nach vorne rein.
Alternativ kannst du auch erst eine Spalte vor oder hinter der zu bearbeitenden Spalte einfügen, die Treffer in der Schleife einfach in die neue Spalte kopieren und anschließend die Ursprungsspalte löschen.
Welche Variante du nimmt, hängt vom Rest deines Codes ab. Wenn Du z.B. Formeln verwendest, deren Bezug die zu bearbeitende Spalte ist, geht nur Version eins.
Gruß,
Zwenn

Anzeige
AW: Schneller 0 löschen
25.11.2014 16:36:02
Ronald
Danke Zwenn,
mit der Lösung von Hary bin ich gut dran...

AW: Schneller 0 löschen
25.11.2014 16:45:07
Zwenn
Jep,
die Lösung von Hary ist ja auch um einiges schneller zu integrieren :-)

AW: Schneller 0 löschen
25.11.2014 17:55:45
Daniel
und man kann sie bei Bedarf auch mal direkt in Excel anwenden, ohne erst ein Makro schreiben zu müssen.
Gruß Daniel

AW: Schneller 0 löschen
25.11.2014 16:00:09
hary
Moin
Teste mal so.
With Range("Z2:BH300")
.Replace 0, "", xlWhole 'Null ersetzen durch nix
.SpecialCells(xlCellTypeBlanks).Delete shift:=xlToLeft 'leere Zellen loeschen
End With

gruss hary

AW: Schneller 0 löschen
25.11.2014 16:34:19
Ronald
Danke Hary, das reicht mir voll und ganz aus und beschleunigt enorm..

Anzeige
AW: Schneller 0 löschen
25.11.2014 16:07:26
EtoPHG
Hallo Ronny,
Bitte korrigiere deine Levels auf höchstens Basiskenntnisse!
Schneller (Excel Standard-Funktionen): Auf die zu löschenden Werte Filtern (Autofilter).
Zeilen löschen. Fertig. Diesen Vorgang kannst du auch mit dem Rekorder aufzeichnen und den Code entsprechend anpassen.
(VBA): Dein Code ist der wahre Horror.
Aus einer For Each Schlaufe und einem If - End If mit einem Goto herauszuspringen, lässt sämtlichen Code-Leser die Haare zu Berge stehen. Löschen von Zeilen sollte immer in einer For-Schlaufe passieren, welche von unten (letzte Zeile) nach oben (erste Zeile) läuft.
Gruess Hansueli

Anzeige
AW: Schneller 0 löschen
25.11.2014 16:29:35
Ronald
Hallo Hansueli,
gerne lass ich mich freundlich auch korrigieren und vielleicht stehe ich ja auf dem Schlauch, der Code mag nicht schön sein und du hast recht, das man von unten nach oben geht, aber warum soll ich denn Zeilen löschen, wenn ich nur Zellen löschen möchte?
Mein Problem liegt ja gerade darin, dass ich in diesem Fall keine Daten löschen möchte, die sich in der gleichen Zeile oder darunter/darüber befinden.
Wenn du mir das erklären kannst, dann beantrage ich auch nicht, dass du deinen Leselevel herabstufst :-)
LG
Ronny

hast recht....owT
25.11.2014 16:36:07
EtoPHG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige