Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1008to1012
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

Makro zum Löschen verfeinern

Makro zum Löschen verfeinern
22.09.2008 14:19:51
Matthias
Hallo, ich habe eben folgendes Makro bekommen, dass leere Zeilen löscht:

Sub LeereLoeschen()
Columns(2).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub


Es löscht also alle Zeilen, wenn in der zweiten Spalte keine Inhalte stehen.
Das Makro soll zusätzlich noch ganze Zeilen löschen, bei einem bestimmten Wert haben.
Kurz: Zeile löschen, wenn in der Spalte 2 entweder nichts steht(darauf bezieht sich das makro oben), oder bei einem bestimmten Wert, bzw Werten, meist Strings.
Vielen Dank für eure Hilfe!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zum Löschen verfeinern
22.09.2008 15:28:53
Peter
Hallo Matthias,
dann versuch es einmal so:

Public Sub loeschen()
Dim lZeile  As Long
Columns(2).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
For lZeile = Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1
If Cells(lZeile, 2).Value = "Hugo" Or _
Cells(lZeile, 2).Value = "Franz" Then
Rows(lZeile).Delete Shift:=xlUp
End If
Next lZeile
End Sub


Gruß Peter

AW: Makro zum Löschen verfeinern
22.09.2008 15:36:06
Matthias
Hallo Peter,
super, dass sieht doch gut aus. Die Anweisung "Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1"
hatte ich auch schonmal in einem Makro verbaut, allerdings weiß ich nicht genau was dort passiert.
Könntest du mir kurz aufschreiben, was hier genau passiert.
Vielen Dank für den neuen Code.
Gruß
Matthias
Anzeige
AW: Makro zum Löschen verfeinern
22.09.2008 15:47:00
Peter
Hallo Matthias,
es wird von ganz unten in der angegebenen Spalte (hier 2 = B) nach oben (xlUp) die letzte belegte Zelle gesucht. Von diese Zelle/Zeile aus bis zur Zeile 1 werden nun deine gesuchten Begriffe abgeglichen und bei GEFUNDEN wird die Zeile gelöscht.
Das muss immer von unten begonnen werden, da ja immer weniger Zellen an der Verarbeitung teilnehmen (falls gelöscht wird) und For/Next sonst sein Ende nicht mehr finden würde.
Gruß Peter
AW: Makro zum Löschen verfeinern
22.09.2008 15:54:20
Matthias
jetzt verstehe ich erst den Sinn und es erscheint mir auch logisch. Super, vielen Dank!! Diese Anweisung begegnet einem bzw. mir recht oft.
Gruß
Matthias
Anzeige
AW: Makro zum Löschen verfeinern
22.09.2008 15:31:00
Klaus
Hallo Matthias,
probier mal das aus:

Sub leere_bedingt_loeschen()
Dim lRowLast As Long
Dim iCol As Integer         'Spalte definieren
Dim r As Range
Dim sRemove As String
iCol = 2                    'Spalte B
sRemove = "2"               'alles löschen, was 2 als Inhalt hat
lRowLast = Cells(65536, iCol).End(xlUp).Row + 1     'Letzte Zeile
For Each r In Range(Cells(1, iCol), Cells(lRowLast, iCol))
If r = sRemove Then
r.ClearContents     'jede "2" gegen leere Zelle tauschen
End If
Next r
Columns(2).SpecialCells(xlCellTypeBlanks).EntireRow.Delete  'alle leeren Zellen löschen
End Sub


Grüße,
Klaus M.vdT.

Anzeige
AW: Makro zum Löschen verfeinern
22.09.2008 16:41:59
Matthias
Hallo Klaus,
vielen Dank für deine Hilfe. Bei Makros ist es immer gut verschiedene Lösungen zu sehen.
Gruß
Matthias
AW: Makro zum Löschen nochmals verfeinern
22.09.2008 20:09:00
Daniel
Hi
wenn die Werte in den Zellen, die gelöscht werden sollen, Feste Werte sind und keine Formeln, gehts eigentlich noch einfacher:
Beispiel:
Gelöscht werden sollen alle Zeilen, die in Spalte 2 Leer sind, oder wo "Hugo" oder "Klaus" drin steht:

Sub Löschen()
With Columns(2)
.Replace "Klaus", "", lookat:=xlWhole
.Replace "Hugo", "", lookat:=xlWhole
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub


Gruß, Daniel

Anzeige
AW: Makro zum Löschen nochmals verfeinern
23.09.2008 11:37:00
Klaus
Hey Daniel,
ich wusste es geht auch ganz ohne schleife! Vielen Dank für den eleganten Code.
Grüße,
Klaus M.vdT.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige