Anzeige
Archiv - Navigation
1320to1324
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

Laufzeitfehler 91

Laufzeitfehler 91
16.07.2013 19:30:14
TheBeginner
Guten Tag zusammen,
es stellt sich mir mal wieder ein Problem. Ich versuche mittels des folgenden Codes mir die Spalte in welchem sich der Maximalwert befindet zu detektieren.
Die Variablen var1 und var2 werden korrekt übergeben, da der Befehl "bereich.Select" noch ordnungsgemäß ausgeführt wird. Bei nachfolgenden Zeile erhalte ich dann die Fehlermeldung "Laufzeitfehler 91". Woran kann das liegen? Könnte mir bitte jemand ein paar Infos zukommen lassen.

'Maximalwert suchen
Cells(1, 51).Value = "Spalte mit Maximalwert"
Maximum_1 = WorksheetFunction.Max(Range(Cells(2, 3), Cells(var1, var2 + 2))
'Spalte suchen und Spaltennummer ausgeben
Set bereich = Range(Cells(2, 3), Cells(var1, var2 + 2))
bereich.Select
max_spalte_1 = Selection.Find(Application.Max(Selection)).Column
Cells(2, 51).Value = max_spalte_1

Vielen Dank
Richard

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 91
16.07.2013 19:51:46
TheBeginner
Hallo Hajo,
herzlichen Dank für deine schnelle Info.
Habe deinen Tip mal gleich ausprobiert. Funktioniert leider nicht. Es kommt wieder die alte Fehlermeldung. Hast du eine Ahnung woran das liegen könnte?
Gruß
Richard

Anzeige
AW: Laufzeitfehler 91
16.07.2013 19:53:12
Hajo_Zi
Hallo Richard,
Ich baue keine Datei nach, die Zeit hat schon jemand investiert.
Ein Nachbau sieht bestimmt anders aus als das Original.
Ein Link zur Datei wäre nicht schlecht.
Gruß Hajo

AW: Laufzeitfehler 91
16.07.2013 20:18:42
TheBeginner
Hallo Hajo,
danke für die Antwort.
Leider verstehe ich zwar nicht genau was du damit meinst, aber die Datei stammt schon von mir und ist nicht plagiiert. Zugegeben, ich habe mich hier im Forum bei mir unbekannten Dingen beraten lassen, aber geschrieben habe ich das Ding schon selbst. Die Datei kann ich in Ihrer Gesamtheit nicht hochladen, da dort auch sensible Erkenntnisse eingearbeitet sind, die so noch nicht veröffentlicht wurden. Ich bitte dafür um Verständnis. Wenn es gar nicht anders geht, dann muss ich die Datei umschreiben, es besteht jedoch die Möglichkeit einer zu starken "Verstümmelung" der Datei.
Gruß
Richard

Anzeige
AW: Laufzeitfehler 91
16.07.2013 20:57:46
Hajo_Zi
Du hast unsere Hinweise zum kompletten Find also eingearbeitet und es besteht das Problem weiterhin?
Gruß Hajo

AW: Laufzeitfehler 91
16.07.2013 19:51:30
Stefan
Hallo Richard,
die Find-Methode liefert eine Range zurück. Da mußt Du prüfen, ob es nicht Nothing ist. Beachte aber auch, daß Du die Parameter LookIn, LookAt etc immer mit angeben sollst.
 Dim rngWert As Range
Set rngWert = Selection.Find(Application.Max(Selection))
If Not rngWert Is Nothing Then
max_spalte_1 = rngWert.Column
Cells(2, 51).Value = max_spalte_1
End If
Gruß Stefan

Anzeige
AW: Laufzeitfehler 91
16.07.2013 19:58:17
TheBeginner
Hallo Stefan,
vielen Dank für den Hinweis.
Leider verstehe ich nicht, was du mit LookIn und LookAt meinst.
Ebenso muss der Maximalwert innerhalb des Bereichs liegen. Es sollte somit in keinem Fall Nothing sein. Oder verstehe ich hier gerade was falsch.
Gruß
Richard

AW: Laufzeitfehler 91
16.07.2013 20:00:48
Hajo_Zi
Hallo Richard,
eine komplette Find Zeile würde so aussehen.
Set Rafound1 = Columns(1).Find("Erledigt", Range("A" & Rows.Count), xlFormulas, _
xlWhole, , xlNext)
Gruß Hajo

AW: Laufzeitfehler 91
16.07.2013 20:12:35
Stefan
Hallo Richard,
das sind die Paramter der Find-Methode. Wenn Du dir den Such-Dialog ansschaust, dann siehst Du hier die Auswahl Suchen in, wo Du zum Beispiel Formeln oder Werte auswhählen kannst (LookIn) oder ob Du den ganzen Zellinhalt vergleichen willst (LookAt). Gehe einfach mal auf Find und drücke die F1-Taste. Jetzt sollte die Hilfe aufgehen und Du kannst vieles zur Find-Methode lesen.
Gruß Stefan

Anzeige
AW: Laufzeitfehler 91
16.07.2013 21:24:06
TheBeginner
Hallo Stefan und Hajo,
danke für den Hinweis.
Es wird bei Eurer Schleife "Nothing" ausgegeben. Innerhalb des Array findet sich jedoch der Maximalwert. Habe das eben mal per Eingabe von max ausprobiert. Der Wert befindet sich in der ersten Spalte des Arrays, was im Tabellenblatt der Spalte "C" entspricht.
Habt ihr vielleicht noch einen Tip woran es sonst noch liegen könnte?
Gruß
Richard

AW: 1.Maimumspalte
16.07.2013 21:31:11
Gerd
Hallo Richard,
so ist es für dich vielleicht einfacher.
Sub test()
Dim Bereich As Range
Dim dblMax As Double
Dim lngSpalteMAX1 As Long
Dim rngCol As Range
Set Bereich = Range(Cells(2, 3), Cells(10, 11))
dblMax = Application.Max(Bereich)
For Each rngCol In Bereich.EntireColumn
If IsNumeric(Application.Match(dblMax, rngCol, 0)) Then
lngSpalteMAX1 = rngCol.Column: Exit For
End If
Next
MsgBox lngSpalteMAX1
End Sub
Gruß Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige