Das Archiv des Excel-Forums

Zeile löschen in Bereich

Bild

Betrifft: Zeile löschen in Bereich
von: Florian

Geschrieben am: 09.07.2008 14:47:53

Hallo,
ich hätte mal eine Frag für ein kleines Problem.
Ich durchsuche mit einem VBA Programm (u.a.) einen best. Zellenbereich.
Jetzt möchte ich immer dann, wenn die Zelle mit gelber Hintergrundfarbe formatiert ist, die komplette Zeile löschen:


Dim Bereich as Range
Dim Zelle as Range
Set Bereich = Range("A2:A2000")
For Each Zelle In Bereich
If Zelle.Interior.ColorIndex = 36 Then
Zelle.Select
Selection.EntireRow.Delete Shift:=xlUp
End If
Next


Das funktioniert prinzipiell auch.
Allerdings wird immer dann, wenn 2 Zeilen hintereinander gelb markiert sind, die 2. Zeile nicht mehr gelöscht.
Durch das Löschen der Zeile und dem damit verbundenen "hochrutschen" der drunterliegenden wird wohl diese immer nicht geprüft.
Wie könnte o.a. Code aussehen, dass es funktioniert???
Gelöst hab' ich es jetzt halt so:


For z = 2 To 2000
If Range("A" & z).Interior.ColorIndex = 36 Then
Rows(z & ":" & z).Delete Shift:=xlUp
z = z - 1
End If
Next


Bild

Betrifft: AW: Zeile löschen in Bereich
von: Matthias G
Geschrieben am: 09.07.2008 14:59:09
Hi Florian,
Schleifen, in denen Zellen gelöscht werden, immer "von unten nach oben" abarbeiten:


Sub tt()
Dim Bereich As Range
Dim Zelle As Range, z1 As Long, z2 As Long, i As Long
Set Bereich = Range("A2:A2000")
z1 = Bereich(1).Row
z2 = Bereich(Bereich.Count).Row
For i = z2 To z1 Step -1
'For Each Zelle In Bereich
With Cells(i, 1)
If .Interior.ColorIndex = 36 Then .EntireRow.Delete Shift:=xlUp
End With
Next
End Sub


Gruß Matthias
P.S. vielleicht solltest du noch besser referenzieren auf das Blatt, z.B.


With ActiveWorkbook.Sheets("Tabelle1").Cells(i,1)


damit der Code nicht in falschen Blättern rumpfuscht, falls das aktive Blatt nicht das ist, was gelöscht werden soll.

Bild

Betrifft: AW: Zeile löschen in Bereich
von: David

Geschrieben am: 09.07.2008 15:02:34
Nicht sehr elegant, aber funzt bei mir:
Einfach deine Schleife in eine weitere Schleife einbetten:
For i=1 to 2/3/4...
...
Next
Wenn dein Bereich nicht allzu groß ist, sollte das nicht viel länger dauern.
Gruß
David

 Bild

Excel-Beispiele zum Thema "Zeile löschen in Bereich"

Leerzeichen aus einem Bereich löschen download Befindet sich die aktive Zelle in einem bestimmten Bereich? download
Mehrbereichsauswahl auf eine Seite drucken. download Spalten einer Mehrbereichsauswahl ausblenden. download
Bereich mit Maximalwert markieren download Benannten Bereich erweitern download
Bereich in RefEdit-Element eingeben und auslesen download Benutzerdefinierte SVERWEIS-Funktion über mehrere Bereiche download
Letzter Wert aus einem Bereich download Bereiche bei Mehrfachauswahl prüfen download
Auswahl eines Zellbereiches verhindern download Bereiche in Abhängigkeit eines Zellinhaltes drucken download
Den selben Bereichsnamen in mehreren Tabellenblättern download Leere Zeilen und Spalten in ausgewähltem Bereich löschen download
URLs eines ausgewählten Bereiches in HyperLinks umwandeln download Werte aus Zellbereich in eine Matrix übernehmen und auslesen download
Zellauswahl auf den ausgewählten Bereich beschränken download Berechnung des ausgewählten Bereiches in der Statusleiste download
Bereiche auf Übereinstimmung vergleichen download Scrollbereich begrenzen download
Tabellenblattbereich als Email versenden download Serie von Bereichsnamenteilen einer Arbeitsmappe ändern download
Worte in einem vorgegebenen Bereich zählen download Bereichsnamen ermitteln und als Kommentare anzeigen download
Bereichsnamen in UserForm-ListBox auflisten und editieren download Einen vorgegebenen Tabellenblattbereich in neue Arbeitsmappe download
Werte aus einem nicht zusammenhängendem Bereich auslesen download Druckbereich variabel gestalten download
Tabellenblattbereich sortiert als Zellkontextmenü download Überschriften aus Spalte C in Spalte D in den relevanten Bereich download
Druckbereich bis zum ersten Nullwert festlegen download Werte eines bestimmten Wochentages und eines Zeitbereiches addieren download
Markierten Bereich mit jeweiligem Mwst-Satz multiplizieren download Cursor in bestimmtem Zellbereich in Eieruhr verwandeln download
Maximalwert aus einem Bereich ermitteln und in Spalte A eintragen download Formelbereich in Einzelelemente aufschlüsseln download
Datenreihenbeschriftungs-Quellbereich ausserhalb des Datenbereiches download Diagramm-Datenbereich über Schaltfläche festlegen download
Abfrage zum Kopierbereich von Startzelle, Zeilen- und Spaltenanzahl download Einen von einer Schlüsselziffer abhängigen Bereich kopieren download
Namen eines ausgewählten Bereiches auslesen download Den in einer Zelle genannten Bereich eines Blattes drucken download
Zugriff auf Zellen unter Verwendung eines Bereichsnamens download Bereich aus anderer Tabelle für 2 Sekunden anzeigen download
Nur die sichtbaren Zellen eines AutoFilter-Bereiches einlesen download Aktuellen Bereich in den Spalten A:F als Druckbereich download
Über UserForm-RefEdit-Steuerelement Bereich auswählen download Über InputBox festzulegenden Bereich kopieren download
Anzahl der Übereinstimmungen in zwei Bereichen ermitteln download