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

Loop in Button Sub - 2

Loop in Button Sub - 2
18.03.2019 09:00:33
Marcel
Hallo an die bisherigen Antworter vom 08.03.19,
vielen Dank!!!
Ich kann irgendwie leider nicht mehr auf den ursprünlich Thread antworten. Die Links aus den Emails werden nicht mehr gefunden.
@ Werner:
Deine Lösung gefällt mir sehr gut. Könntest du mir da noch Kommentare zu geben, was der Code in welcher Zeile macht? So gut verstehe ich VBA noch nicht....
Es gibt aber noch ein kleines Problem:
Es bleibt immer noch eine Zeile mit dem Wort "erledigt" am Ende über.
Soll heißen, wenn ich jetzt mehrere Zeilen untereinander habe in den "erledigt" steht, z.B.: Zeile 26-30, werden die Zeilen 27-30 gelöscht, aber die Zeile 26 bleibt stehen.
Zweites Beispiel ist wenn Zeilen dazwischen liegen:
Es steht in Zeile 24, 30, 44, 45, 46 und 50 "erledigt", dann werden auch nicht alle Zeilen gelöscht. Erst wenn man den Button erneut drückt, werden diese auch gelöscht.
Vielen Dank und Gruß
Marcel

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Loop in Button Sub - 2
18.03.2019 09:29:29
Nepumuk
Hallo Marcel,
teste mal:
Option Explicit
Private Sub CommandButton2_Click()
Const SEARCH_TERM As String = "erledigt"
Dim rngCell As Range, rngRange1 As Range, rngRange2 As Range
Dim strFirsAddress As String
Set rngCell = Columns(7).Find(What:=SEARCH_TERM, _
LookAt:=xlWhole, LookIn:=xlValues, MatchCase:=True)
If Not rngCell Is Nothing Then
strFirsAddress = rngCell.Address
Do
If rngRange1 Is Nothing Then
Set rngRange1 = rngCell
Set rngRange2 = Tabelle1.Cells(rngCell.Row + 1, 1)
Else
Set rngRange1 = Union(rngRange1, rngCell)
Set rngRange2 = Union(rngRange2, Tabelle1.Cells(rngCell.Row + 1, 1))
End If
Set rngCell = Columns(7).FindNext(After:=rngCell)
Loop Until rngCell.Address = strFirsAddress
Call rngRange1.EntireRow.Delete
Call rngRange2.EntireRow.Delete
Set rngCell = Nothing
Set rngRange1 = Nothing
Set rngRange2 = Nothing
End If
End Sub

Gruß
Nepumuk
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige