Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Spalte auf bestimmte Werte durchsuchen
09.04.2021 12:52:04
FXS
Hallo
ich möchte aus einer Spalte mehrfach genannte Werte suchen und nacheinander bei Klick auf eine UserForm in die Zellen springen.
Der zu suchende Wert wird über eine Datenüberprüfung in Zelle H13 ausgewählt. Über einen CommandButton wird die Suche gestartet und in die erste Zelle mit dem Wert gesprungen, dann wird überprüft wie oft der Wert vorkommt. Kommt er mehr als ein mal vor wird eine UserForm geöffnet.
(*Bis hier hin funktioniert alles*)
Nun soll bei jedem Klick auf die UserForm einen Wert weiter gesprungen werden. Dies gelingt mir nicht.
In einer Schleife benötige ich einen Rückgabewert aus der UserForm bzw. dem darin enthaltenen CommandButton_Click, der mittels .FindNext auf die String-Variable LastFound die Addresse der gefundenen Zeile schreibt. Dieses Address-String benötige ich im Modul, jedoch weiß ich nicht wie ich diesen Wert im Modul bekomme.
Vorab vielen Dank für die Hilfe.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
und du zeigst jetzt...
09.04.2021 13:09:35
Werner
Hallo,
...warum nicht das, was du schon hast?
Also lade bitte deine Mappe hoch.
Gruß Werner
AW: und du zeigst jetzt...
09.04.2021 13:22:09
FXS
Modul:
Option Explicit
Dim FoundCell As Range, LastFound As String
Sub AllesFinden()
Dim fnd As String, FirstFound As String
Dim rng As Range ',FoundCell As Range
Dim myRange As Range, LastCell As Range
Dim Anzahl As Integer, AnzahlC As Integer
fnd = Range("H3").Value
Set myRange = ActiveSheet.Range("D14:D250")
Set LastCell = myRange.Cells(myRange.Cells.Count)
Set FoundCell = myRange.Find(what:=fnd, after:=LastCell)
If Not FoundCell Is Nothing Then
FirstFound = FoundCell.Address
Else
GoTo NothingFound
End If
Set rng = FoundCell
Do Until FoundCell Is Nothing
Set FoundCell = myRange.FindNext(after:=FoundCell)
Set rng = Union(rng, FoundCell)
Anzahl = Anzahl + 1
If FoundCell.Address = FirstFound Then Exit Do
Loop
If Anzahl > 1 Then
fnd = Range("H3").Value
Set myRange = ActiveSheet.Range("D14:D250")
Set FoundCell = myRange.Find(what:=fnd)
If Not FoundCell Is Nothing Then (*Ab hier funktioniert es nicht mehr*)
FirstFound = FoundCell.Address
LastFound = FirstFound
Do
LastFound = WeiterButton_Click(LastFound)
Set FoundCell = Range(LastFound)
UserForm2.Show
Set FoundCell = myRange.FindNext(after:=FoundCell)
If FoundCell.Address = FirstFound Then Exit Do
Loop
End If
End If
Exit Sub
NothingFound:
MsgBox ("Nichts gefunden")
End Sub ++++++++++++++++++++++++++++++++++
CommandButton:
Option Explicit
Dim FoundCell As Range, LastFound As String
Private Sub WeiterButton_Click()
Dim fnd As String, FirstFound As String
Dim rng As Range
Dim myRange As Range, LastCell As Range
Dim Anzahl As Integer, AnzahlC As Integer
fnd = Range("H3").Value
Set myRange = ActiveSheet.Range("D14:D250")
Set FoundCell = myRange.Find(what:=fnd)
If Not FoundCell Is Nothing Then
FirstFound = FoundCell.Address
If FoundCell.Value = fnd Then
Set FoundCell = myRange.FindNext(after:=FoundCell)
FoundCell.Activate
LastFound = FoundCell.Address    (*wird im Modul benötigt*)
End If
End If
End Sub

Anzeige
AW: Spalte auf bestimmte Werte durchsuchen
09.04.2021 13:14:35
ralf_b
entweder du übergibst die Variable als Parameter an eine Sub oder Function oder du erstellst im Modul eine Public Variable.
AW: Spalte auf bestimmte Werte durchsuchen
09.04.2021 14:27:03
FXS
Das hat geholfen, dankeschön.

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige