Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Finden Suchfunktion funktioniert nicht | Herbers Excel-Forum


Betrifft: Finden Suchfunktion funktioniert nicht von: Axel Meyer
Geschrieben am: 18.01.2012 16:15:31

Hallo Cracks,

ich habe unten anstehendem Code folgendes Problem (bei der Ermittelung einer Max-Wert-Zeile):
innerhalb des angegebenen Bereiches myRange wird ein Maximalwert gesucht und dieser via Worksheetfunction.max() an pk korrekt übergeben. Suche ich unmittelbar danach denselben Maximalwert Pk im gleichen Bereich myRange, bleibt meine Suchvariable leer, Rh = nothing.

Habt ihr Ideen?
Gruß,
Axel
PS: gebe ich anstelle des gefundenen Maximalwertes Pk z.B. "Haus" ein und sorge dafür, dass dieser Wert auch in myRange vorhanden ist, findet er "Haus" ohne Probleme...

Set myRange = ActiveSheet.Range(Cells(xyValRow1, yCol), Cells(xyValRow2, yCol))
myRange.Select 'hier keine Probleme
pk = Application.WorksheetFunction.Max(myRange) ' =zahlenwert: 14592814,4246388
Set Rh = myRange.Find(pk)
If Not Rh Is Nothing Then 'bleibt auf Rh = nothing????
 MsgBox Rh.Address
 MsgBox Rh.Row
End If

  

Betrifft: AW: Finden Suchfunktion funktioniert nicht von: Rudi Maintaire
Geschrieben am: 18.01.2012 16:58:05

Hallo,
würde ich mit Match machen.

Sub xxx()
Dim r1 As Range, z As Long
Set r1 = Range(Cells(10, 1), Cells(20, 1))
z = Application.Match(Application.Max(r1), r1, 0)
MsgBox r1(z).Address
End Sub

Gruß
Rudi


  

Betrifft: AW: Finden Suchfunktion funktioniert nicht von: Axel Meyer
Geschrieben am: 19.01.2012 08:35:51

Guten morgen Rudi,

wenn ich Application.M... eingebe, bietet mir der Editor im Drop-Downmenue kein .Match an. Das hat mich bei der Recherche durch alte Beiträge schon gewundert, weil ein anderer User das gleiche Problem hatte.

Dennoch:
Dein Code klappt prima, dankeschön, das löst mein Problem. Wobei mich mein Teilproblem von oben schon interessieren würde. Denn: wenn ich den Bereich manuell über eine Schleife

for i = 1 to 8760
   if MaxVal < cells(i,4).value then
   ...

durchsuche, dann funktioniert es prima.
Wie auch immer: Ich werde Deinen Code nutzen, er ist kürzer und eleganter.

Nochmals Danke,
Axel


  

Betrifft: ...Weil der Intellisense hier nur auf Worksheet... von: Luc:-?
Geschrieben am: 19.01.2012 10:08:53

…Function abstellt, Axel!
Manche meinen, sie müssten immer nur Application dafür verwenden, weil man nur so, wie vom TabBlatt gewohnt, ggf auch einen Fehlerwert geliefert bekommt. Dabei sollte es doch eigentl reichen, wenn man im Nachhinein feststellt, dass die jeweilige Variable leer (bzw auf 0 oder Voreinstellung) geblieben ist. Im TabBlatt versucht Mancher mit zusätzl Fktt genau dass zu erreichen, in Pgmm will er o.A. dann aber genau das Gegenteil! Irgendwie doch „verkehrte Welt”… ;->
Gruß Luc :-?


  

Betrifft: AW: ...Weil der Intellisense hier nur auf Worksheet... von: Axel Meyer
Geschrieben am: 20.01.2012 11:19:45

Hey Du Philosoph!
Ich würde Dich ja gerne verstehen,
aber Du bist auf einer höheren Umlaufbahn als ich…
Ich kann Dir nicht folgen. Kannst Du das etwas
konkreter beschreiben?
Gruß, Axel


  

Betrifft: Was ist da nicht zu verstehen, ... von: Luc:-?
Geschrieben am: 20.01.2012 21:08:13

…Axel?
Schau doch einfach mal in die VBE-Hilfe!
1. Stichwort WorksheetFunction: Das ist ein Objekt, dass einen Großteil der TabBlatt-Fktt beinhaltet, sozusagen ein Container für diese.
2. Stichwort Application: Das ist die Anwendung, also Xl selbst.
3. Stichwort Intellisense: Das ist ein Service des VB-Editors, der so programmiert ist, dass er nur auf korrekt referenzierte Objekte anspricht. Application.Match ist in diesem Sinne keine korrekte Referenzierung, fktt aber trotzdem und sogar etwas anders als bei korrekter Referenzierung, nämlich (fast) wie im TabBlatt.
Dahingehend hatte ich dein Erstaunen verstanden, weshalb ich es dir zu erläutern versucht habe.
Fazit: Ohne WorksheetFunction kein Intellisense für den Inhalt dieses Container-Objekts!
Alles andere magst du als „Philosophie” ansehen, beruht aber auf Erfahrungen und ist hier auch schon abundzu diskutiert worden.
Gruß+schöWE, Luc :-?


  

Betrifft: AW: Was ist da nicht zu verstehen, ... von: Gerd L
Geschrieben am: 20.01.2012 22:26:17

Hallo Axel,

bei der Find-Methode sollte man die Parameter lookin, lookat u. ggf. matchcase mit angeben.
Ansonsten wird nach mit Einstellungen im Dialog "Suchen" gesucht u. diese passen nicht immer.

Gruß Gerd


  

Betrifft: ...Das natürl außerdem auch! ;-) schöWE owT von: Luc:-?
Geschrieben am: 21.01.2012 06:16:36

:-?


  

Betrifft: AW: ...Das natürl außerdem auch! ;-) schöWE owT von: Axel Meyer
Geschrieben am: 23.01.2012 10:46:52


Männer,
danke für die Erklärungen.
Da hab ich wieder etwas dazu gelernt.
Axel


Beiträge aus den Excel-Beispielen zum Thema "Finden Suchfunktion funktioniert nicht"