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

Antwort auf Loop in Button Sub - 2

Antwort auf Loop in Button Sub - 2
28.03.2019 07:27:03
Marcel
Hallo Nepumuk,
aus krnakheitsgründen kann ich leider erst jetzt antworten.
Leider ist auch der andere Threat wieder geschlossen.
Ich habe es gerade getestet und es funktioniert wunderbar.
Vielen Dank dafür.
Kannst du mir vielleicht noch ein bisschen erklären was dein Code genau macht?
Also irgednwie Kommentare dazu schreiben. Ich möchte ja gerne lernen....
Hier nochmal der Code....
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Antwort auf Loop in Button Sub - 2
28.03.2019 09:17:15
Nepumuk
Hallo Marcel,
bitteschön:
Private Sub CommandButton2_Click()
Const SEARCH_TERM As String = "erledigt"
Dim rngCell As Range, rngRange1 As Range, rngRange2 As Range
Dim strFirsAddress As String
'Suche nach dem ersten Vorkommen von 'erledigt'
Set rngCell = Columns(7).Find(What:=SEARCH_TERM, _
LookAt:=xlWhole, LookIn:=xlValues, MatchCase:=True)
'Wenn die Suchfunktion einen Eintrag gefunden hat, dann gibt
'sie ein Range-Objekt zurück ansonsten Nothing
If Not rngCell Is Nothing Then
'Adresse der ersten Fundstelle speichern
strFirsAddress = rngCell.Address
'Schleife öffnen
Do
'Wenn noch keine Fundstelle gespeichert wurde
If rngRange1 Is Nothing Then
'Fundstelle speichern
Set rngRange1 = rngCell
Set rngRange2 = Tabelle1.Cells(rngCell.Row + 1, 1)
'Andernfalls
Else
'Bisherige Fundstelle(n) mit der neuen Fundstelle vereinen
Set rngRange1 = Union(rngRange1, rngCell)
Set rngRange2 = Union(rngRange2, Tabelle1.Cells(rngCell.Row + 1, 1))
End If
'Ausgehend von der letzten Fundstelle nack der nächsten suchen
Set rngCell = Columns(7).FindNext(After:=rngCell)
'Schleife weiterführen bis die zuletzt gefundene
'Fundstelle die selbe Adresse hat wie die erste
Loop Until rngCell.Address = strFirsAddress
'Gefundene Zeilen löschen
Call rngRange1.EntireRow.Delete
Call rngRange2.EntireRow.Delete
'Objekte freigeben
Set rngCell = Nothing
Set rngRange1 = Nothing
Set rngRange2 = Nothing
End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Antwort auf Loop in Button Sub - 2
28.03.2019 12:59:30
Marcel
Hallo Nepumuk,
ganz großes Dankeschön.
Das hilft sehr weiter den Code besser zu verstehen.
Einfache Sachen bekomme ich mit meinen kenntnissen ja schon hin.
Ich weiß aber noch nicht viel über die Objekte in VBA, die ich ansprechen kann oder wie ich diese halt deklariere.
Da konnte ich mir bisher immer nur durch google und Foren irgendwas zusammenreimen bis es funktioniert hat. Nun will ich das aber doch etwas besser machen.
Ich werde es wohl noch häufiger brauchen.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige