Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1844to1848
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

Suchen in mehreren Blättern

Suchen in mehreren Blättern
07.09.2021 19:04:45
Steve
Hallo Excelfreunde,
Ich habe eine Mappe mit mehreren Tabellenblättern jeweils mit Arbeitstagen von Mitarbeitern im jeweiligen Monat
In einem Übersichtsblatt soll der Plan eines jeden Arbeiters auf gelistet werden. Dies bewerkstellige ich mit Copy und Paste aus dem jeweiligen Tabellenblatt.
Das funktioniert soweit auch ganz gut. Jetzt ist es allerdings so, dass einige Mitarbeiter in unterschiedlichen Monaten an unterschiedlichen Stellen arbeiten. Die entsprechende Stelle wollte ich mit der FIND-Funktion ausfindig machen.
leider kommt eine Fehlermeldung, dass die Objektvariable nicht definiert ist (Laufzeitfehler 91) in der Zeile

i = Suchzeile.Row
Aber ich habe beide Variablen deklariert. Wo ist mein Fehler?
Aufgrund der Komplexität der Tabelle hoffe ich, dass ihr anhand des Codeteils den Fehler finden könnt.
Ich danke euch im Vorfeld
Steve
Hier jetzt der Code:

Option Explicit                                                 'Variablendeklaration erforderlich
Dim i As Integer
Dim Suchzeile As Range
Dim Suchwort As String
Dim zielzeile As Integer
Dim wks As Worksheet
zielzeile = 5
For Each wks In Worksheets
Suchwort = Range("B1").Value
Set Suchzeile = wks.Range("d19:d116").Find(what:=Suchwort, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext)
i = Suchzeile.Row   'HIER KOMMT DIE FEHLERMELDUNG!!!
If wks.Name  "Bemerkungen" Then
wks.Range(wks.Cells(i, 12), wks.Cells(i, 42)).Copy       'Kopieren des Monats
With ActiveSheet
.Range(Cells(zielzeile, 2), Cells(zielzeile, 32)).PasteSpecial Paste:=xlPasteValues            'Werte einfügen
End With                                                 'Einfügen des Monats
zielzeile = zielzeile + 3
End If
If zielzeile = 41 Then
Exit For
End If
Next wks

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

Betreff
Datum
Anwender
Anzeige
AW: Suchen in mehreren Blättern
07.09.2021 19:28:31
{Boris}
Hi Steve,
die Objektvariable Suchzeile ist offensichtlich Nothing - der Suchbegriff wurde anscheinend nicht gefunden. Und

Nothing.Row
führt dann zu dem Fehler, da Nothing keine Zeile hat.
VG, Boris
AW: Suchen in mehreren Blättern
07.09.2021 19:37:31
Steve
hm....okay dann muss wohl an der Suche an sich was falsch sein
Was heißt "falsch sein"...?
07.09.2021 20:03:46
{Boris}
Hi Steve,
wenn ein Suchbegriff nicht gefunden wird (das kann ja passieren), dann bleibt die zugewiesene Objektvariable nun mal leer (Nothing) und hat auch keine weiteren Eigenschaften mehr (wie in Deinem Fall: Row-Eigenschaft).
Zeig doch mal einen Ausschnitt Deinen Daten (reduzier sie auf das Nötigste!)
VG, Boris
Anzeige
AW: Suchen in mehreren Blättern
07.09.2021 21:20:50
Alwin
Hallo Steve,
mal ein Schuss in Blaue:
Option Explicit 'Variablendeklaration erforderlich

Sub test()
Dim i As Integer
Dim Suchzeile As Range
Dim Suchwort As String
Dim zielzeile As Integer
Dim wks As Worksheet
zielzeile = 5
For Each wks In Worksheets
Suchwort = Range("B1").Value
Set Suchzeile = wks.Range("d19:d116").Find(what:=Suchwort, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext)
If Not Suchzeile Is Nothing Then
i = Suchzeile.Row   'HIER KOMMT DIE FEHLERMELDUNG!!!
If wks.Name  "Bemerkungen" Then
wks.Range(wks.Cells(i, 12), wks.Cells(i, 42)).Copy       'Kopieren des Monats
With ActiveSheet
.Range(Cells(zielzeile, 2), Cells(zielzeile, 32)).PasteSpecial Paste:=xlPasteValues            'Werte einfügen
End With                                                 'Einfügen des Monats
zielzeile = zielzeile + 3
End If
End If
If zielzeile = 41 Then
Exit For
End If
Next wks
End Sub
Wenn kein Wert gefunden wird, springt die Prozedur ans Ende nach einfügen, wo i nicht mehr gebraucht wird. Vielleicht hilft das weiter.
Gruß Uwe
Anzeige
Da ist nicht viel "blau" dabei...
07.09.2021 22:03:33
{Boris}
Hi,

mal ein Schuss in Blaue
...denn der Laufzeitfehler 91 bedeutet nun mal, dass die Objektvariable nicht gefüllt ist.
Und der OP ist mit

Aber ich habe beide Variablen deklariert. Wo ist mein Fehler?
eben auf dem Holzweg, weil er vermutet, dass es an der Variablendeklaration liegt und nicht, dass sie gefüllt sein muss (also der Suchbegriff gefunden wird).
Dass man das dann abfängt mit If Not ... Is Nothing ist ja nur logisch - aber erstmal sollten wir doch wissen, ob es überhaupt vorkommen (dürfen) sollte, dass nix gefunden wird.
Aber ich spekulier schon wieder viel zu viel...
VG, Boris
Anzeige
AW: Da ist nicht viel "blau" dabei...
10.09.2021 23:20:35
Steve
Hi, Sorry für die späte Antwort
also nein es kann nicht sein, dass nix gefinden werden kann, da B1 gebildet wird aus (beispielsweise hier mit dem ersten Namen)

B1 => =Index(D19:D116;1)
dann muss doch

Set Suchzeile = wks.Range("d19:d116").Find(what:=Suchwort, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext)
auch was finden oder?
AW: Da ist nicht viel "blau" dabei...
11.09.2021 07:30:13
Oberschlumpf
Hi,
hast du DAS denn auch im Überwachungsfenster per F8-Einzelschritten mal überprüft, OB Suchzeile einen Wert erhält?
Ciao
Thorsten
Anzeige
Ich wiederhole mich...
11.09.2021 10:30:58
{Boris}
Hi Steve,

Zeig doch mal einen Ausschnitt Deiner Daten (reduzier sie auf das Nötigste!)
Alles andere ist Kaffeesatzleserei.
VG, Boris
AW: Ich wiederhole mich...
11.09.2021 18:31:29
Steve
Ich Bau mal was zusammen
Läuft so bei mir nicht...
12.09.2021 10:48:50
{Boris}
Hi,
...wegen 64Bit-Version.
Aber ich schrieb doch auch

reduzier sie auf das Nötigste!
Schmeiß doch mal alles Unnötige raus.
VG, Boris
Anzeige
AW: Ich wiederhole mich...
12.09.2021 11:54:28
ralf_b
Die schleife For z = 1 To 12
Worksheets(z) ... blabla ..find
bei z=1 sucht er in Blatt Bemerkungen in deiner Beispieldatei. Soll das so?
AW: Ich wiederhole mich...
12.09.2021 23:18:15
Steve
Das war der entscheidende Tipp. Bin davon ausgegangen, dass er die Reihenfolge anhand Tabelle, Tabelle2, usw bestimmt und nicht anhand der Reihenfolge in der Arbeitsmappe.
Jetzt funktioniert es mit for z=2 to 13
Danke für eure Hilfe
AW: Ich wiederhole mich...
13.09.2021 05:34:19
Hajo_Zi
offen bedeutet es soll noch eine Antwort kommen.
Warum ist dein Beitrag Offen.
Ich konnte dies im Beitrag nicht lesen!
Das ist nur meine Meinung zu dem Thema.
GrußformelHomepage
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige