Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
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 93

Laufzeitfehler 93
26.02.2016 13:42:08
Alex
Servus,
ich habe ein Problem: bei folgenden Code bekomme ich zum Teil die Fehlermeldung
Laufzeitfehler 91: Objektvariable oder With-Blocker nicht festgelegt.
Habe mit '''' markiert an welcher Stelle, der Fehler auftaucht.
Grob: die Funktion befüllt 2 Listboxen, eine aus dem aktivem Sheet, die andere durchsucht alle anderen Sheets. Die Listboxen werden dynamisch befüllt bei jeder Änderung des Suchbegriffs...
Danke für die Hilfe!
Gruß Alex
Private Sub TextBox2_Change()
Application.ScreenUpdating = False
ListBox1.Clear
ListBox2.Clear
If TextBox2 = "" Or TextBox2 = " " Or Len(TextBox2) 

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 93
26.02.2016 13:46:05
otto
Hi,
denke es muss hier heisen:
Loop Until wksrng.Address = saAddress
otto

AW: Laufzeitfehler 93
26.02.2016 13:47:52
Michael
Hi Alex,
Du solltest Dir angewöhnen, Deinen Code schöner einzurücken, damit man besser sieht, was zusammengehört.
Wenn Du Dir das "Standardbeispiel" ansiehst: https://www.herber.de/mailing/vb/html/xlmthfindx.htm
wirst Du feststellen, daß in der Loop Until AUCH überprüft wird, ob wksrng nothing.
Das müßte es sein.
Schöne Grüße,
Michael

AW: Laufzeitfehler 93
26.02.2016 14:00:01
Alex
Hallo zusammen,
@Otto, habe ich geändert, aber lag nicht dadran
@Michael, habe set = nothing rausgenommen, ändert leider auch nichts.
Ja den Code habe ich mir zusammengekloppt und kurz geschrieben...
Funktioniert leider ja noch nicht :(?
Danke!

Anzeige
AW: Laufzeitfehler 93
26.02.2016 14:26:40
Michael
Hi Alex,
hier die erste Hälfte kommentiert bzw. mit Fragen versehen:
Private Sub TextBox2_Change()
Dim rng As Range
Dim sAddress As String
Dim wksrng As Range
Dim saAddress As String
Dim wks As Worksheet
' zuerst Variablen deklarieren, dann Code...
ListBox1.Clear
ListBox2.Clear
If TextBox2 = "" Or TextBox2 = " " Or Len(TextBox2) 
Schöne Grüße,
Michael

AW: Laufzeitfehler 93
28.02.2016 12:35:12
Alexander
Hey Michael,
vielen Dank schon einmal!
''' Kategorie ist global as Worksheets definiert, da mehrere Userform auf Kategorie gleichzeitig zugreifen
''' Die 2 Änderungen habe ich übernommen, aber daran lag die Fehlermeldung jetzt nicht.
Viele Grüße,
Alex

Anzeige
AW: Laufzeitfehler 93
28.02.2016 13:43:43
Mullit
Hallo,
böse Falle, Du weist hier Deine String Variable sAddress aus dem ersten Loop zu, es müsste saAddress heißen...
'...
If Not wksrng Is Nothing Then
saAddress = wksrng.Address
Do
With ListBox2
.ColumnCount = 2
.AddItem wksrng.Text
.List(.ListCount - 1, 1) = wks.Range("B1")
End With
'  ListBox2.AddItem wksrng.Text
Set wksrng = Cells.FindNext(after:=wksrng)
Loop Until wksrng.Address = sAddress
'...

Gruß, Mullit

Anzeige
AW: Laufzeitfehler 93
29.02.2016 08:33:41
Alex
Hey,
habe mal alle Änderungen bis jetzt übernommen, aber der Fehler taucht leider
immer noch auf bei: Loop Until wksrng.Address = saAddress

Option Explicit
Public Kategorie As String
Private Sub TextBox2_Change()
Dim rng As Range
Dim sAddress As String
Dim wksrng As Range
Dim saAddress As String
Dim wks As Worksheet
ListBox1.Clear
ListBox2.Clear
If TextBox2 = "" Or TextBox2 = " " Or Len(TextBox2) 

AW: Laufzeitfehler 93
29.02.2016 09:18:26
Mullit
Hallo,
böse_Falle_Part_II: Du hast nicht nur die Stringvariable aus dem ersten Loop verwendet, sondern _ referenzierst auch auf Sheets(Kategorie) aus dem ersten Loop bei Deinem FindNext-Aufruf im zweiten Loop, Du mußt auf die Laufvariable wks Deines For-Each-Loops referenzieren:

'... Set Rng = Nothing
                  For Each wks In Worksheets
                      Set wksrng = wks.Cells.Find(what:=TextBox2.Text, after:=ActiveCell, _
LookIn:=xlFormulas, LookAt:= _
                      xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
_
                      , SearchFormat:=False)
                         If Not wksrng Is Nothing Then
                         saAddress = wksrng.Address
                              Do
                                   With ListBox2
                                  .ColumnCount = 2
                                  .AddItem wksrng.Text
                                  .List(.ListCount - 1, 1) = wks.Range("B1")
                                   End With
                                   Set wksrng = wks.Cells.FindNext(after:=wksrng)
                              Loop Until wksrng.Address = saAddress
                        End If
    Next wks
'...

Gruß, Mullit

Anzeige
AW: Laufzeitfehler 93
29.02.2016 09:56:35
Alex
Hey Mullit,
mein persönlicher Held :)!!!
Daran habe ich wirklich nicht gedacht, WKS dort miteinzubeziehen.
Beschäftige mich noch nicht so lange mit VBAs, daher entgehen mir ab und zu solche Sachen noch.
Danke!
Gruß Alex

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige