Anzeige
Archiv - Navigation
1700to1704
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

Find in anderem Tabellenblatt, Laufzeitfehler

Find in anderem Tabellenblatt, Laufzeitfehler
16.07.2019 18:50:37
Landumin
Hallo liebe VBA-Gemeinde!
Ich hoffe, ihr könnt mir bei meinem Anliegen weiterhelfen:
Ich möchte im Tabellenblatt "Eingabe" aus einer Dropdown-Liste in C5 einen Kundennamen (z.B. Maier) auswählen , damit später im entsprechenden Kundenblatt "Maier" nach einem definierten Jahr gesucht werden kann. Die Jahreszahl (z.B. 2020) wähle ich ebenfalls im "Eingabe"-Blatt aus einer Dropdown-Liste aus (D5).
Ziel ist es, via Klick auf die Schaltfläche im entsprechenden Kundenblatt (Variable a) das gesuchte Jahr (Variable b) in der Zeile 50 zu finden (die Spalte ist unbekannt), in einem weiteren Schritt benötige ich dann die Spaltenposition der Variable b für weitere Aktionen.
Allerdings hänge ich direkt an einem Fehler, die Suche "Set b = Worksheets("Kundenbatt").Rows(50).Find(a, lookat:=xlWhole, LookIn:=xlValues, searchorder:=xlByRows, MatchCase:=True)" liefert immer den Fehler: "Index außerhalb des gültigen Bereichs". Weiß jmd, wie ich es schaffe, dass im "Kundenblatt" gesucht wird?
Da ich ein VBA-Neuling bin, finde ich leider keine passende Lösung (habe bereits zahlreiche Foren durchforstet).
----------------------------------------------------------
Option Explicit
Dim Kundenblatt As String
Dim y As Long
Dim z As Long
Dim s As Long
Dim k As Long
Dim b As Range
Dim a As Long
Dim x As Long
Public Sub Schaltfläche1_Klicken()
Kundenblatt = Worksheets("Eingabe").Range("C5")
a = Worksheets("Eingabe").Range("D5")
Set b = Worksheets("Kundenbatt").Rows(50).Find(a, lookat:=xlWhole, LookIn:=xlValues,  _
searchorder:=xlByRows, MatchCase:=True)
x = Worksheets("Kundenblatt").Cells(89, b.Column).Value
z = Worksheets("Kundenblatt").Cells(90, b.Column + 3).Value
End Sub
___________________________________________________________________
Ich hoffe, ihr könnt mir weiterhelfen!
Vielen Dank :)
VG

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Find in anderem Tabellenblatt, Laufzeitfehler
16.07.2019 18:55:30
Werner
Hallo,
welcher Fehler und in welcher Codezeile.
Was steht in Zeile 50, ein komplettes Datum oder nur eine Jahreszahl?
Gruß Werner
AW: Find in anderem Tabellenblatt, Laufzeitfehler
16.07.2019 19:03:25
Landumin
Userbild
Hallo Werner,
danke für deine Nachricht! In Row 50 sind Jahreszahlen eingetragen, also z.B. 2020.
Die Fehlermeldung siehst du im hochgeladenen Bild.
VG
Worksheets("KundenbLatt")
16.07.2019 19:05:25
{Boris}
VG, Boris
AW: Worksheets("KundenbLatt")
16.07.2019 19:12:46
Landumin
Hallo Boris,
wolltest du etwas antworten? Kann leider nur "VG" von dir lesen.
Überprüfe deine Rechtschreibung! (owT)
16.07.2019 19:18:30
EtoPHG

AW: Überprüfe deine Rechtschreibung! (owT)
16.07.2019 19:22:34
Landumin
Danke für den Hinweis, ist mir beim erstellen der Testdatei versehentlich passiert.
Auch wenn dort "Kundenblatt" steht, tritt der Laufzeitfehler auf..
Anzeige
AW: Worksheets("KundenbLatt")
16.07.2019 19:22:18
{Boris}
Hi,
stand im Betreff.
Set b = Worksheets("KundenbLatt").Rows(50)…
VG, Boris
AW: Worksheets("KundenbLatt")
16.07.2019 19:23:33
Landumin
Danke für den Hinweis, ist mir beim erstellen der Testdatei versehentlich passiert.
Auch wenn dort "Kundenblatt" steht, tritt der Laufzeitfehler auf..
AW: Worksheets("KundenbLatt")
16.07.2019 19:26:39
{Boris}
Hi,
füg mal diese Zeilen ein:
Set b = Worksheets("Kundenbatt").Rows(50).Find(a, lookat:=xlWhole, LookIn:=xlValues, _
searchorder:=xlByRows, MatchCase:=True)
If b Is Nothing Then
MsgBox "Suche war nicht erfolgreich"
Exit Sub
End If

x = Worksheets("Kundenblatt").Cells(89, b.Column).Value
Anzeige
Also jetzt...
16.07.2019 19:35:31
{Boris}
Hi,
fühl ich mich schon ein bisschen veräppelt.
Ob Kundenbatt oder Kundenblatt oder MickeyMaus - das Blatt gibt es nicht und das führt zu dem Fehler...
VG, Boris
AW: Also jetzt...
16.07.2019 19:47:38
Landumin
Danke dir Boris und entschuldige, ich bin wie gesagt ein absoluter Neuling.
Jetzt mal überlegen, wie ich den Tabellenname variabel gestalten kann ;)
AW: Also jetzt...
16.07.2019 20:17:23
Werner
Hallo,
zum Beispiel indem man alle Beiträge liest.
Hier jetzt noch mit Fehlerbehandlung, falls die Jahreszahl nicht gefunden wird.
Option Explicit
Sub Schaltfläche1_Klicken()
Dim Kundenblatt As String, y As Long
Dim z As Long, s As Long, k As Long
Dim b As Range, a As Long, x As Long
Kundenblatt = Worksheets("Eingabe").Range("C5")
a = Worksheets("Eingabe").Range("D5")
Set b = Worksheets(Kundenblatt).Rows(50).Find(a, lookat:=xlWhole, LookIn:=xlValues, _
searchorder:=xlByRows, MatchCase:=True)
If Not b Is Nothing Then
x = Worksheets(Kundenblatt).Cells(89, b.Column).Value
z = Worksheets(Kundenblatt).Cells(90, b.Column + 3).Value
MsgBox x
MsgBox z
Else
MsgBox a & " ist im Blatt " & Kundenblatt & " nicht vorhanden."
End If
Set b = Nothing
End Sub
Gruß Werner
Anzeige
AW: Worksheets("KundenbLatt")
16.07.2019 19:41:39
Werner
Hallo,
warum deklarierst du denn deine Variablen außerhalb der Prozedur? (hat jetzt aber mit deinem Problem nichts zu tun)
Ohne Gänsefüßchen
Option Explicit
Sub Schaltfläche1_Klicken()
Dim Kundenblatt As String, y As Long, z As Long
Dim s As Long, k As Long, b As Range
Dim a As Long, x As Long
Kundenblatt = Worksheets("Eingabe").Range("C5")
a = Worksheets("Eingabe").Range("D5")
Set b = Worksheets(Kundenblatt).Rows(50).Find(a, lookat:=xlWhole, LookIn:=xlValues, _
searchorder:=xlByRows, MatchCase:=True)
x = Worksheets(Kundenblatt).Cells(89, b.Column).Value
z = Worksheets(Kundenblatt).Cells(90, b.Column + 3).Value
MsgBox x
MsgBox z
End Sub
Gruß Werner
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige