Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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
18.04.2018 16:15:45
Idence
Hallo, ich habe ein Problem mit folgendem Codeabschnitt:
Option Explicit
Dim Dt As Range
Sub Faerben()
Range("I10").Activate
Set Dt = Tabelle1.Range("M2:T2").Find(what:=Tabelle1.Range("J9").Value, lookat:=xlWhole) _
Tabelle1.Range(ActiveCell.Row, Dt.Column).Activate
End Sub
Damit möchte ich die richtige Spalte und Zeile ermitteln (->ergibt eine Zelle), um später verschiedene Dinge mit der Zelle anzustellen. Doch leider kann ich die Zelle noch nicht aktivieren. Es kommt die Fehlermeldung "Laufzeitfehler 91" und nach einem Klick auf "Debuggen" erscheint die Zeile
Tabelle1.Range(ActiveCell.Row, Dt.Column).Activate
gelb.
Hat jemand eine Idee, woran dies liegen könnte?
Vielen Dank im voraus.
Gruß
Idence

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 91
18.04.2018 16:26:25
Steve
Wonach soll er denn suchen? einen bestimmten wert?
du kannst dann nicht einfach den Wert nehmen und den als Spalte deklarieren
AW: Laufzeitfehler 91
18.04.2018 16:29:47
Idence
Hallo,
die Find-Funktion sucht nach dem, was in "J9" steht. Das habe ich schon ausprobiert und es funktioniert. Ich habe aber das Problem, dass Excel aus irgendeinem Grund Dt nicht als Variable akzeptiert, sodass ich nicht auf Dt.Column zugreifen kann.
Gruß
Idence
AW: Laufzeitfehler 91
18.04.2018 16:28:26
Daniel
Hi
"activate" und "Select" kannst du immer nur auf dem gerade aktiven Tabellenblatt ausführen.
wenn du auch das Tabellenblatt dabei wechseln willst, müsstest du also erst dieses Blatt selektieren, bevor du die Zelle selektieren kannst.
oder du verwendest Application.Goto Tabelle1.Range(ActiveCell.Row, Dt.Column)
damit geht der Sprung auch in einem Schritt.
Gruß Daniel
Anzeige
AW: Laufzeitfehler 91
18.04.2018 16:36:08
Idence
Hallo,
tatsächlich habe ich nur ein einziges Tabellenblatt, dieses ist auch aktiv.
Gruß
Idence
AW: Laufzeitfehler 91
18.04.2018 16:59:35
Daniel
Hi
wenn du eine Zelle über Zeilennummer/Spaltennummer ansprechen willst, dann nimm nicht Range(), sondern Cells(Zeile, Spalte)
bei Range brauchst du eine Zelladresse als Text in der Form "SpaltenbuchstabeZeilennummer"
wenn du nur ein Tabellenblatt hast, auf dem alles stattfindet, dann solltest du das in deinem Code auch einheitlich berücksichtigen.
Entweder schreibst du vor jedes Cells und Range "Tabelle1.", dann läuft der Code immer auf diesem Blatt, oder du lässt es ganz weg, dann läuft der Code auf dem gerade aktiven Blatt.
Gruß Daniel
Anzeige
AW: Laufzeitfehler 91
18.04.2018 17:39:38
Idence
Hallo,
danke für deine Tipps.
Allerdings behebt das leider nicht die Fehlermeldung. Mit
Cells(ActiveCell.Row & dt.Column).Select
muss eigentlich das ansprechen einer Zelle funktionieren. Tut es aber nicht.
Ist es möglicherweise ein Excel-Fehler?
Anbei die Datei, damit ihr es vor euch habt.
https://www.herber.de/bbs/user/121136.xlsm
Öffnet das Modul "Faerben". Dieses Sub kann nicht durchgefüghrt werden.
Gruß
Idence
AW: Laufzeitfehler 91
18.04.2018 17:57:28
Daniel
Hi
du musst zwischen die beiden Parameter ein Komma setzen, kein "&"
wo hast du denn das "&" her?
in meiner letzten Antwort steht das nicht.
Phantasiert du gerne? Das solltest du abstellen und genauer lesen, was man dir schreibt.
des weitern kommt hinzu, dass deine Suche erfolglos bleiben wird, weil in der Zelle J9 das Datum als Zahlenwert steht und in der Zeile 2 als Text.
Das sind für Excel 2 unterschiedliche Werte, die nicht zueinander passen.
du müsstest deinen Suchbegriff in einen Text wandeln.
außerdem musst du der Suchfunktion noch mitteilen, dass sie in den Zellwerten suchen muss und nicht in den Formeltexten.

Set dt = Tabelle1.Range("M2:T2").Find(what:=Tabelle1.Range("J9").Text, LookIn:=xlValues)

Anzeige
AW: Laufzeitfehler 91
19.04.2018 09:07:03
Idence
Hallo Daniel,
neuer Tag, neues Glück. Ich habe mir das Problem, mit dem ich mich gestern solange beschäftigt habe, in ausgeruhtem Zustand nochmal angeschaut und mithilfe deines Beitrags konnte ich nun endlich das Problem lösen. Du bist mir eine wirklich große Hilfe gewesen. In Zukunft werde ich mir die Meinung anderer wohl genauer durchlesen.
Vielen Dank nochmals.
Gruß
Idence
AW: Laufzeitfehler 91
18.04.2018 23:50:06
Gerd
Moin
Dim dt As Range
With Tabelle1
Set dt = .Range("M2:T2").Find(what:=.Range("J9").Text, LookIn:=xlValues)
If Not dt Is Nothing Then
Application.Goto .Cells(10, dt.Column)
Set dt = Nothing
End If
End With

Gruß Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige