Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
224to228
224to228
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen mit Formeln, aber ohne Wert löschen

Zellen mit Formeln, aber ohne Wert löschen
27.02.2003 12:22:12
Albert
Hallo,

ich habe eine Excel-Tabelle mit über 1200 Zeilen. Aus dem möchte ich Zellen ohne Wert (eine Formel steht aber drin) per Button löschen.

Ich habe es folgenderma0en probiert (ist übrigens schon aus diesem Forum):

Sub Löschen()
Dim i As Single
Application.ScreenUpdating = False
For i = 1 To 1500
If Cells(i, 1).Value = "" Then
'1 steht für Spalte A, 2 wäre Spalte B etc.
Rows(i).Delete Shift:=xlUp
i = i - 1
End If
Next i
Application.ScreenUpdating = True
End Sub

Aber irgendwie geht das seeeehhhhrrr träge. Manchmal hängt sich sogar der Computer dabei auf.
Für eine bessere Lösung wäre ich sehr dankbar!

Gruß Albert


10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zellen mit Formeln, aber ohne Wert löschen
27.02.2003 13:17:53
Felix

Hallo,
so geht es vielleicht schneller, da nur einmal gelöscht werden muß.


Sub Löschen()
Dim i As Single
Application.ScreenUpdating = False
cells.sort key1:=range("a1"), order1:=xlascending, header:=xlyes
'Daten werden nach Spalte A sortiert, Überschriften vorhanden

i=2
do while cells(i,1)<>""
i=i+1
loop
range("a"& i &":z2000)".delete shift:=xlup
'Zellen werden gelöscht
Application.ScreenUpdating = True
End Sub

Gruß, Felix

P

Re: Zellen mit Formeln, aber ohne Wert löschen
27.02.2003 13:39:25
Albert

Dankeschön für die schnelle Antwort!

Ich habe nur ein Problem. Bei dem Ausruck

range("a"& i &":z2000)".delete shift:=xlup

gibt er mir einen Fehler an. Und zwar verlangt er bei dem . vor dem delete ein Listenzeichen oder ). Ich weiß leider nicht warum. Kannst Du mir da noch helfen? Wäre super! Danke im Voraus!

Anzeige
Re: Zellen mit Formeln, aber ohne Wert löschen
27.02.2003 13:44:54
Felix

Sorry,
es muss natürlich heissen:

range("a"& i &":z2000").delete shift:=xlup

Gruß, Felix

Re: Zellen mit Formeln, aber ohne Wert löschen
27.02.2003 13:46:31
Albert

Danke, habe es selber gerade auch gemerkt. Werde es jetzt mal ausprobieren, wie es funzt und wie lange es dauert.

Danke auf jeden Fall!!

Re: Zellen mit Formeln, aber ohne Wert löschen
27.02.2003 13:54:32
Albert

Funktioniert wunderbar!
Und superschnell!
Dankeschön
Gruß Albert

Re: Zellen mit Formeln, aber ohne Wert löschen
27.02.2003 13:57:35
Felix

Hallo

Vielleicht geht es so noch schneller!
(Du mußt das natürlich auf Deine Tabelle anpassen.)

Sub Löschen()
Application.ScreenUpdating = False
Cells.Sort key1:=Range("a1"), order1:=xlAscending, header:=xlYes
'Daten werden nach Spalte A sortiert, Überschriften vorhanden
Range("a" & Int(Range("A1").End(xlDown).Row + 1) & ":z2000").Delete shift:=xlUp
'Zellen werden gelöscht
Application.ScreenUpdating = True
End Sub

Gruß, Felix

Anzeige
Problem!!
27.02.2003 14:08:36
Albert

Sorry, das habe ich ja jetzt erst gemerkt. Das Programm darf ja nicht nach der ersten Leerzeile gleich alles löschen, sondern NUR die Leerzeilen ohne Wert in der Tabelle.

Ich brauche das so bestimmt, weil es ein Steuerungsprogramm als eine Art Textdatei ausgibt, in der keine Leerzeilen zwischen den Befehlen vorkommen dürfen.

Vielleicht fällt Dir noch was ein dazu! Wäre super!

Danke schonmal!

Gruß Albert

Re: Problem!!
27.02.2003 14:36:24
Felix

Hallo,

deshalb wird ja vorher sortiert, so dass die Leerzellen hinten sind. Allerdings wird dann deine Ordnung durchwühlt. Du könntest vorher in einer freien Spalte die Zellen durchnummerieren und nach dem Löschen dann nach dieser wieder zurück sortieren. Oder muß eine ganze Zeile leer sein damit sie gelöscht werden kann?

Gruß, Felix

P.S. Bin wohl erst morgen wieder da.

Anzeige
Re: Problem!!
27.02.2003 14:50:38
Albert

Ja, nur das mit dem Sortieren hat nicht so ganz funktioniert. Eben mit der Ordnung und so. Ich habe es jetzt anders gelöst. Ist zwar sehr umständlich, aber es funktioniert. Mein altes Programm dauerte ja so lange, weil ich ja eine Endlosschleife drin habe (was man so nach mehreren hingucken erst alles sieht *g*). Muss ja auch dazu sagen, dass es erst mein zweites VBA-Programm ist. Naja, sei´s drum. Auf jeden Fall: Es wird ja die Zelle abgefragt, ob sie leer ist. Und wenn ich ja am Ende der Tabelle angelangt war, war ja meine Zelle leer, und die hat er dann immer gelöscht, bis ultimo.

Ich habe jetzt jede Zeile mit einer Wenn-Anweisung verknüft. Quasi, wenn nix da ist, zum reinschreiben, soll er irgendein Zeichen reinschreiben z.B. +. Dann lass ich mein Programm nach + suchen, und der löscht dann die Zeilen.

Wie gesagt, zwar ein bischen umständlich, aber es funktioniert. Trotzdem nochmal danke für Deine Hilfe.

Gruß Albert


Anzeige
Re: Problem!!
27.02.2003 16:08:16
PeterW

Hallo Albert,

lass die Schleife rückwärts laufen, dann kannst Du auf Hilfskonstruktionen verzichten:

Gruß
Peter

370 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige