Microsoft Excel

Herbers Excel/VBA-Archiv

Zwei Range.find(next) hintereinander

Betrifft: Zwei Range.find(next) hintereinander von: V8Cowboy
Geschrieben am: 15.10.2020 13:45:53

Hallo,

ich habe folgendes Problem mit meinem Code. Per Range.find/findnext wird in einer Liste ein "Ausfüller" gesucht, der mehrfach vorkommen kann.

Set Rng = KSTSTAMM.Columns(1).Find(what:=Ausf, LookIn:=xlValues, lookat:=xlWhole)
If Not Rng Is Nothing Then
firstaddress = Rng.Address
-->MACH WAS DAMIT

Do
Set Rng = KSTSTAMM.Columns(1).FindNext(Rng)
If Not Rng Is Nothing Then
If Rng.Address = firstaddress Then
Exit Do
Else
-->MACH WAS DAMIT
End If

End If
Loop
Else
End If

Das funktioniert soweit wie gewünscht, es werden mir für jeden Ausfüller nacheinander die Kostenstellen ausgegeben.

Füge ich jetzt aber statt dem Teil "MACH WAS DAMIT" ein weiteres FIND/FINDNEXT mit RNG2 ein, weil ich dann noch für jede gerade selektierte KST mehrere mögliche Werte aus einer anderen Liste ausgeben möchte, dann bekomme ich sobald der Code zurück bei RNG.findnext ist eine Fehlermeldung (ungültiger Prozeduraufruf).

Hat jemand eine Vorstellung woran das liegen könnte? Zumal der Code ja ohne dieses MACH WAS DAMIT tadellos funktioniert.

Vielen Dank im Voraus.
Gruß, Kristof

Betrifft: AW: Zwei Range.find(next) hintereinander
von: ralf_b
Geschrieben am: 15.10.2020 13:57:37

https://www.herber.de/forum/archiv/1060to1064/1062854_FindNext_bei_verschachtelten_Finds.html

Betrifft: AW: Zwei Range.find(next) hintereinander
von: V8Cowboy
Geschrieben am: 15.10.2020 14:10:04

WOW, danke für die schnelle Antwort. Verschachtelt ist mir nicht eingefallen, danach hätte ich wohl suchen sollen.

Danke, hat funktioniert. Irgendwann muss ich mich mal mit Arrays beschäftigen, ich schätze damit geht vieles einfacher ;)

Gruß, Kristof

Betrifft: AW: Zwei Range.find(next) hintereinander
von: Daniel
Geschrieben am: 15.10.2020 15:27:52

Hi

statt .FINDNEXT(letzteFundStelle)
verwende das ursprüngliche .FIND mit seinen Einstellungen und dem zusätzlichen Parameter: after:=letzeFundStelle

das .FINDNEXT kann sich immer nur auf die Einstellungen des zuletzt gemachten .FIND beziehen, daher kommt es durcheinander wenn man mehrere verschiedene .FIND hat.

Gruß Daniel