Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
708to712
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
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nullzellen eliminieren

Nullzellen eliminieren
22.12.2005 12:00:01
herbi
Hallo,
ich suche nach einer Lösung (Makro) welches mir in einer Liste von Zahlen alle Felder mit dem Inhalt "0" eliminiert und die rechts davon stehenden Werte nach links verschiebt
Beispiel
Artikel-1 0 0 0 1 5 0 0 0 22 19 10
Artikel-2 0 0 0 0 0 0 0 0 11 22 19
Artikel-3 0 0 3 1 5 0 22 19
Nachdem das Makro gelaufen ist, sollte die Liste so aussehen
Artikel-1 1 5 22 19 10
Artikel-2 11 22 19
Artikel-3 3 1 5 22 19
Any idea wie man das Lösen kann?
danke im Voraus - Herbi

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

Betreff
Datum
Anwender
Anzeige
AW: Nullzellen eliminieren
22.12.2005 12:05:13
Galenzo
For Each c In ActiveSheet.UsedRange
If c.Value = 0 Then c.Delete Shift:=xlToLeft
Next
Viel Erfolg!
AW: Nullzellen eliminieren
22.12.2005 13:47:44
herbi
Hi,
danke für eure schnelle Hilfe. Habe folgenden Code daraus gebastelt
und bekomme die Fehlermeldung "Objekt erfoderlich". Beim Debuggen markiert Excel die
Zeile "For each...". Wo ist der Fehler?
Ich möchte, dass nur die Zellen zwischen A3 und F5 bearbeitet werden.

Sub Nullstellen_Eliminieren()
Dim rng As Range
Range("A3:F5").Select
For Each rng In UsedRange
If rng = 0 Then rng.Delete Shift:=xlToLeft
Next
End Sub

Anzeige
AW: Nullzellen eliminieren
22.12.2005 13:55:42
Galenzo
Dim rng As Range
For Each rng In Range("A3:F5")
If rng = 0 Then rng.Delete Shift:=xlToLeft
Next
Viel Erfolg!
AW: Nullzellen eliminieren
22.12.2005 14:08:24
Galenzo
Nimm besser diesen Code:
Dim rng As Range
Set rng = Range("A3:F5").Find(0)
Do While Not rng Is Nothing
rng.Delete Shift:=xlToLeft
Set rng = Range("A3:F5").Find(0)
Loop
Bei der ersten (nicht ganz durchdachten Lösung) können Zellen übrig bleiben, da der Bereich von links durchlaufen wird. Wenn eine Nuller-Zelle gelöscht wird, die Nachbarzelle (auch mit einer Null drin) nachrückt, und dann mit der Nachbarzelle weitergemacht wird, dann werden Zellen sozusagen übersprungen.
Die Lösung oben durchsucht den Bereich solange nach Nullen und löscht, bis keine mehr da sind.
Viel Erfolg!
Anzeige
AW: Nullzellen eliminieren
22.12.2005 15:24:24
herbi
Hi Galenzo,
funktioniert leider zu gut.
Mein Ziel ist es, alle Zellen zu löschen die explizit 0 sind.
Nicht alle Zellen, die in irgendeiner Form eine 0 enthalten.
Dein Code löscht auch Zellen mit dem Wert z.b. 220. Der sollte aber stehen bleiben.
Was muss ich ändern?
Herbi
AW: Nullzellen eliminieren - nachgebessert
23.12.2005 10:03:11
Galenzo
mit ein paar Ergänzungen sollte es funktionieren.
Dim rng As Range
Set rng = Range("A3:F5").Find(What:="0", LookIn:=xlValues, LookAt:=xlWhole)
Do While Not rng Is Nothing
rng.Delete Shift:=xlToLeft
Set rng = Range("A3:F5").Find(What:="0", LookIn:=xlValues, LookAt:=xlWhole)
Loop
Viel Erfolg!
Anzeige
AW: Nullzellen eliminieren
22.12.2005 12:09:18
IngGi
Hallo Herbi,
z.B. so müsste das gehen:

Sub NullLoeschen()
Dim rng As Range
For Each rng In UsedRange
If rng = 0 Then rng.Delete Shift:=xlToLeft
Next 'rng
End Sub
Gruß Ingolf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige