wenn a1 leer, dann ganze zeile löschen



Excel-Version: 97/2000
  

Re: wenn a1 leer, dann ganze zeile löschen

von: Hajo
Geschrieben am: 16.04.2002 - 20:58:38


Hallo Andreas

ich vermute mal Du kennst Dich mit VBA aus und kannst eins der folgenden Makros Dir anpassen.

129. löschen wenn Spalte A kein Datum enthält
folgender Vorschlag (die Spalte A wird auf Datumsinhalte überprüft):
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step –1
If Not IsDate(Cells(i, 1).Text) Then Rows(i).Delete
Next

Sub löschen()
‘ mit bestimmten Datum löschen
Dim I As Long
Dim Letzte As Long
If [a65536] = "" Then
Letzte = [a65536].End(xlUp).Row
Else
Letzte = 65536
End If
On Error Resume Next
For I = Letzte To 1 Step -1
If IsDate(Cells(I, 1)) Then
If CDate(Cells(I, 1)) = CDate("23.12.89") Then Rows(I).Delete
End If
Next
End Sub

Oder 1
Sub löschen()
Dim I As Long
Dim Letzte As Long
If [a65536] = "" Then
Letzte = [a65536].End(xlUp).Row
Else
Letzte = 65536
End If
On Error Resume Next
For I = Letzte To 1 Step -1
If Cells(I, 1) = "1" Then Rows(I).Delete
Next
End Sub
Das Suchen von hinten hat den Grund, daß schon einmal angesprochene Zeilennummern nicht wieder untersucht werden. Wenn du z.B. die Zeile 17 gelöscht hast, ist die ursprüngliche Zeile 18 jetzt die Zeile 17, die wird aber nicht noch einmal überprüft, usw.

130. Ganze Zeile löschen, wenn Zelle in Spalte A leer
das folgende Makro löscht die Zeilen, wenn im Bereich A1 bis A29 leere Zellen enthalten sind:
Sub Leerzeilenlöschen()
Range("A1:A29").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Den Bereich kannst Du ja einfach anpassen

Im Bereich Leerzeilen noch ein Fehler
Sub Leerzeilenlöschen()
Dim I As Long
For I = ActiveSheet.Cells.SpecialCells(xlLastCell).Row To 1 Step -1
On Error Resume Next
Rows(I).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Next I
End Sub


Gruß Hajo

  

Re: wenn a1 leer, dann ganze zeile löschen

von: andreas
Geschrieben am: 16.04.2002 - 21:26:14


hallo hajo, besten dank für die rasche antwort. nachdem ich meine frage plaziert habe, habe ich noch ein bisschen im heutigen "forumstag" gestöbert, dabei habe ich aus einem makro das untenstehende zusammengebastelt. kann man das noch kürzen? oder geht das so? es läuft auf jeden fall. deine vorschläge werde ich noch anschauen und (falls ichs schaffe) für meine zwecke abändern. besten dank

Sub ZeilenLöschen()
Dim I%
For I = Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1
If Cells(I, 2).Value = "" Then Rows(I).Delete
If Cells(I, 21).Value = "" Then Rows(I).Delete
If Cells(I, 23).Value = "" Then Rows(I).Delete
Next
End Sub

ich möchte mich hier auch mal bei allen spezialisten bedanken. als ich dieses forum fand, hatte ich 0 ahnung von vba. nun kommt es lansam. also ich finde euch super. besten dank.
gruss andi

  

Re: wenn a1 leer, dann ganze zeile löschen

von: Hajo
Geschrieben am: 16.04.2002 - 21:36:31


Hallo Andreas

man könnte es noch in einem Vegleich machen
If Cells(I, 2).Value or Cells(I, 21).Value = "" or Cells(I, 23).Value = "" Then Rows(I).Delete

ein grundsätzliches Problem ist " Cells(Rows.Count, 2).End(xlUp).Row" wenn die letzte Zeile von Excel belegt ist liefert excel ein falsches Ergebnis besser
Hinweis von ManuelaM
If [a65536] = "" Then
letzte = [a65536].End(xlUp).Row
Else
letzte = 65536
End If


Gruß Hajo

  

danke

von: andreas
Geschrieben am: 16.04.2002 - 21:55:02


nach unten

Betrifft: wenn a1 leer, dann ganze zeile löschen
von: andreas
Geschrieben am: 16.04.2002 - 20:49:02

hallo spezialisten
habe wieder einmal ein anliegen. wie erreiche ich, dass per makro alle zeilen in welchen die zelle a1, und (oder) die zelle f1 leer sind gelöscht werden?
besten dank
gruss andi

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "2 Formeln verketten"