Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1144to1148
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 424: Objekt erforderlich

Laufzeitfehler 424: Objekt erforderlich
Himmelsbach
Hallo,
Vielen Dank für die Hinweise, hat mir schon sehr weitergeholfen. Ich glaub die groben Sachen sollte ich nun auch gefunden haben, leider hänge ich noch bei folgender Funktion:
Public Function readnotchbesser(schluessel As Variant)
Dim sarray As Variant       'Array
Dim iindex As Integer       'Zähler für Indes
Dim icells As Integer       'Anzahl Zellen
Dim icolumns As Integer     'Anzahl Spalten
Dim irows As Integer        'Anzahl Zeilen
Dim irow As Integer         'Zähler Zeilen
Dim icol As Integer         'Zähler Spalten
Dim srange As Range            'Range
Dim i As Single
i = 1
'Dim besser_notch As Variant
Set srange = Range("RatSt_Moodys_besser")
' Zellenzahl ermitteln
icells = Range("RatSt_Moodys_besser").Cells.Count
Debug.Print icells
' Spalten-/Zeilenzahl ermitteln
icolumns = Range("RatSt_Moodys_besser").Columns.Count
irows = Range("RatSt_Moodys_besser").Rows.Count
Debug.Print icolumns
Debug.Print irows
' Array über redim dimensionieren
ReDim sarray(icells - 1)
' Werte des Breichs in das Array einlesen
For icol = 1 To icolumns
For irow = 1 To irows
sarray(iindex) = srange
iindex = iindex + 1
Next
Next
Debug.Print iindex
'Abgleich eingelesener Schlüssel mit
Do Until RatSt_Moodys_besser.Range(1 & i) = schluessel
i = i + 1
Loop
Debug.Print i
readnotchbesser = Range(icolumns & i).Cells.value
Debug.Print readnotchbesser
End Function

Hier erhalte ich bei der fett markierten Zeile die Fehlermeldung: Laufzeitfehler 424: Objekt erforderlich.
An dieser Stelle würde ich sehr gerne den eingelesenen Wert mit dem Bereich "RatSt_Moodys_besser" abgleichen und wenn dieser gefunden wurde, die Zeilenzahl in i merken, um dann als Ausgabewert den Zelleninhalt aus der letzter Spalte des Bereichs und der ermittelten Zeile (i) auszugeben.
Vielen Dank für Eure Hilfe.
Grüße
Susanne
Do Until srange.Range(1 & i) = schluessel owT
16.03.2010 08:51:32
Rudi
AW: Do Until srange.Range(1 & i) = schluessel owT
16.03.2010 09:12:23
Himmelsbach
Hallo,
Danke für die schnelle Antwort, leider erhalte ich jetzt einen Laufzeitfehler 1004 - Anwendungs- oder objektdefinierter Fehler.
Grüße
AW: Do Until srange.Range(1 & i) = schluessel owT
16.03.2010 09:17:37
xr8k2
Hallo Susanne,
vielleicht beschreibst du mal, was deine Function insgesamt erledigen soll ... ich glaub da stehen z.Z. bestimmt auch noch mehr Sachen drin, die deiner gewünschten Funktionsweise entgegenstehen ... nur ein Beispiel ... du schreibst immer die komplette Range("RatSt_Moodys_besser") in jedes Feld deines Array ^^ ... scheint mir unsinnig (aber vielleicht kenn ich ja auch einfach die Hintergünde nicht ;-) )
Gruß,
xr8k2
Anzeige
AW: Do Until srange.Range(1 & i) = schluessel owT
16.03.2010 09:20:26
Rudi
Hallo,
ich weiß ja gar nicht was du willst.
Auf jeden Fall sieht dein Code zu kompliziert und tw. unlogisch aus.
Evtl.
do until srange.cells(i) = schluessel
Gruß
Rudi
AW: Do Until srange.Range(1 & i) = schluessel owT
16.03.2010 09:31:52
Himmelsbach
Hallo,
Also ich möchte den Bereich "RatSt_Moodys_besser" einlesen. In der ersten Spalte dieses Bereichs steht der Wert, welche ich mit dem Eingangswert "schluessel" abgleichen möchte. Wenn der Wert aus der Spalte A und Schluessel gleich sind, soll bekannt bleiben, in welcher Zeile ich mich befinde.
Der Rückgabewert der Funktion soll, dier Inhalt der Zelle "letzte Spalte des Bereichs" und gemerkte Zeile sein.
icolumns = Range("RatSt_Moodys_besser").Columns.Count
Hiermit wollte ich die max Anzahl der Spalten auszulesen, um diesen Wert dann innerhalb von
readnotchbesser = Range(icolumns & i).Cells.value
wieder zu verwenden um an die "letzte Spalte des Bereichs" zu kommen.
Ansonsten wollte ich mit dem Rest erreichen, dass der Bereich in ein Array eingelesen wird, um die Informationen auslesen zu können.
Ich will auch nicht ausschließen, dass ich viel zu kompliziert denke um das Ganze abzubilden.
Danke & Grüße
Susanne
Anzeige
AW: Do Until srange.Range(1 & i) = schluessel owT
16.03.2010 09:49:46
Rudi
Hallo,
du solltest besser auf integrierte Funktionen, in diesem Fall SVerweis zurückgreifen.
Teste mal:
'Einlesen der Notchveränderungng besser
Public Function ReadNotchBesser(schluessel As Variant)
Dim sRange As Range, iColumns As Integer
' definieren des Breichs als RatSt_Moodys_besser
Set sRange = Range("RatSt_Moodys_besser")
iColumns = sRange.Columns.Count
ReadNotchBesser = Application.VLookup(schluessel, sRange, iColumns, 0)
If IsError(ReadNotchBesser) Then ReadNotchBesser = "nicht gefunden"
End Function

Gruß
Rudi
AW: Do Until srange.Range(1 & i) = schluessel owT
16.03.2010 11:52:01
Himmelsbach
Hallo,
Super danke, das macht genau was ich wollte :-)
Grüße
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige