Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1152to1156
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

Fehler 424 obwohl es zugewiesen ist?!?

Fehler 424 obwohl es zugewiesen ist?!?
Steffen
Hallo werte Forianer,
folgender Code:
Code:
Private Sub CommandButton1_Click()
Dim gef As String
Dim gef2 as string
Dim suchspalte$
Dim eins As String
Dim zwei As String
Worksheets("temp").Activate
If ob_klassfilter.Value = True Then
suchspalte = "Händler"
Else
If ob_andfilter.Value = True Then
IPB: suchspalte = InputBox("Nennen Sie einen anderen Filter" & vbCrLf & "(E-Mail-Versand deaktiviert)", "Filter eingeben- L-PP")
If suchspalte = "" Or suchspalte = "händler" Or suchspalte = "haendler" Or suchspalte = "Händler" Or suchspalte = "Haendler" Then
GoTo IPB
End If
End If
End If
Set gef = Cells.Find(suchspalte, LookIn:=xlValues, lookat:=xlPart)
If Not gef Is Nothing Then
eins = gef.Address
Do
Set gef = Cells.FindNext(gef)
Loop Until (gef.Address = eins)
End If
Worksheets("system").Range("R3") = gef.Column
'Mailversand blockieren:
'----------------------
Set gef2 = Cells.Find("Händler", LookIn:=xlValues, lookat:=xlPart)
If Not gef2 Is Nothing Then
zwei = gef2.Address
Do
Set gef2 = Cells.FindNext(gef2)
Loop Until (gef2.Address = zwei)
End If
Worksheets("system").Range("S3") = gef2.Column
Unload Me
beim Ausführen "kreidet" er:
das "gef=" in der Zeile
Code:
Set gef = Cells.Find(suchspalte, LookIn:=xlValues, lookat:=xlPart)
mit der Meldung Objekt erforderlich (Fehler 424) an
Weiss jemand warum?
Hab den Code in Excel2007 geschrieben, und ursprünglich gef und gef2 usw nicht mit Variablen versehen, bei Office 2003, auf dem das Programm laufen soll, meckert er aber bei jeder Variable rum, die nicht vergeben ist. Eigentlich logisch. Warum macht das aber office2007 nicht? kann das Prgramm ohne Variablenzuweisung temporäre Variablen vergeben?
Gruß steffen

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler 424 obwohl es zugewiesen ist?!?
22.04.2010 18:02:39
IngGi
Hallo Steffen,
die Variable gef ist als Stringvariable deklariert. Die Find-Methode gibt aber die gefundene Zelle als Rangeobjekt zurück. Du brauchst also eine Rangevariable. Wenn du im Code eine Variable verwendest, die du nicht zuvor zum Beispiel mit Dim deklariert hast, dann kommt es darauf an, ob im Codemodul ganz oben, vor dem ersten Makro, "Option Explicit" gesetzt ist. Ist "Option Explicit" gesetzt, meckert Excel vor der Codeausführung. Andernfalls - definitiv nicht zu empfehlen - deklariert Excel die Variable automatisch mit dem EierlegendeWollMilchSau - Variablentyp Variant. Dann gibt es auch keinen Laufzeitfehler in der von dir genannten Codezeile, weil eine Variantvariable jeden Variablentyp annehmen kann.
Gruß Ingolf
Anzeige
AW: Fehler 424 obwohl es zugewiesen ist?!?
22.04.2010 21:05:31
Steffen
Hallo Ingolf.
Hier das nächste Problem. Habe jetzt die nicht deklarierten Variant-Variablen (übrigens nette Beschreibung mit der Wollmilchsau ^^) in Range geändert, soweit nötig. im Nachlaufenden Code allerdings ein neues Problem mit der Trim-Methode. Hier der Code:
Private Sub UserForm_Initialize()
Dim wkstemp As Range
Dim feg As Range
Dim gef As Integer
Set wkstemp = ThisWorkbook.Worksheets("temp")
feg = ThisWorkbook.Worksheets("system").Range("R3").Value
Dim bolVorhanden As Boolean, Zeile As Long, ListZeile As Long
Dim arrprodukt() As String, lngCount As Long
With wkstemp
ReDim arrprodukt(0 To 0)
For Zeile = 5 To .Cells(.Rows.Count, feg).End(xlUp).Row
If .Cells(Zeile, feg).Value  "" Then
If arrprodukt(0) = "" Then
arrprodukt(0) = Trim(.Cells(Zeile, feg).Text)
Else
'Prüfen ob Händler schon in Auswahlliste
bolVorhanden = False
For ListZeile = 0 To lngCount
If arrprodukt(ListZeile) = Trim(.Cells(Zeile, feg).Text) Then
bolVorhanden = True
Exit For
End If
Next
If bolVorhanden = False Then
lngCount = lngCount + 1
ReDim Preserve arrprodukt(0 To lngCount)
arrprodukt(lngCount) = Trim(.Cells(Zeile, feg).Text)
End If
End If
End If
Next
End With
With Me.cob_einzelfilter
.List = arrprodukt()
End With
cob_einzelfilter.AddItem ""
End Sub

Markiert wird der Trim-Befehl in
If arrprodukt(ListZeile) = Trim(.Cells(Zeile, feg).Text) Then
Aufgrund einschlägiger Antworten von Google und Co. vermute ich fehlende Verweise. Aber was hat der Trim-Befehl damit zu tun?
Und wie verhindere ich, dass ich bei der Erstbenutzung der Anwender jedem lang und breit erklären muss wie sie es zum Laufen bekommen bzw die Verweise selber einstellen muss? Kann man diese vielleicht gleich beim Öffnen der Arbeitsmappe auf Aktivität prüfen? Wäre zu einfach oder?
Als Antwort würde mir aber schon der fehlende Verweis reichen. Ich drucke übrigens mit PDF Creator 2.0 im späteren Codeverlauf (diesen muss ich ebenfalls über "Verweise" aktivieren). vielleicht hat das etwas zu sagen, denn auf meinem testsystem ist der PDF Creator noch nicht installiert.... daher vielleicht der Fehler?!?
Vielen Dank.
Steffen
Anzeige
AW: Fehler 424 obwohl es zugewiesen ist?!?
23.04.2010 15:30:48
IngGi
Hallo Steffen,
die Funktion Trim gibt laut Excel-VBA-Hilfe einen Variantwert zurück. Deklariere die Arrayvariable arrprodukt dementsprechend mit dem Typ Variant statt String.
Gruß Ingolf
AW: Fehler 424 obwohl es zugewiesen ist?!?
26.04.2010 07:35:25
Steffen
Guten Morgen Ingolf.
Werd ich sofort ändern. Die Excel-Hilfe funktioniert bei mir leider nicht. ("Fehler in dll-Datei").
Was hälts du davon, wenn ich Dir die Datei zusende und du würdest mal schauen, ob es unter office 2003 bei Dir läuft? Gänge das?
mfG Steffen
AW: Fehler 424 obwohl es zugewiesen ist?!?
26.04.2010 07:52:28
Steffen
Guten Morgen Ingolf.
Werd ich sofort ändern. Die Excel-Hilfe funktioniert bei mir leider nicht. ("Fehler in dll-Datei").
Was hälts du davon, wenn ich Dir die Datei zusende und du würdest mal schauen, ob es unter office 2003 bei Dir läuft? Gänge das?
mfG Steffen
Anzeige
AW: Die Qual der Fehler-Wahl
22.04.2010 21:33:46
Gerd
Hallo Steffen,
die Userform-Module haben bei "normaler" Einstellung der Fehlerbehandlung die Angewohnheit, Fehler nicht unbedingt dort im Debugger anzuzeigen, wo sie zuerst aufgetreten sind.
Stelle im VBA-Editor Menueleiste "Extras" -- Optionen -- Allgemein bei "Unterbrechen bei Fehlern" auf
"in Klassenmodul".
Denn in deinem Code entspricht einiges nicht der VBA-Syntax.
Gruß Gerd
AW: Die Qual der Fehler-Wahl
22.04.2010 21:59:18
Steffen
Hallo Gerd,
ja das kann gut sein, dass alles "ein wenig" hin und her gewürfelt ist. Vieles aus älteren Programmen zusammengebastelt, Daten vom einen ins andere Modul mit Vorkriegsmethoden (schreiben in "system"-Tabellenblatt usw) übergeben, aber so kann ich mir wenigstens teilweise den durchblick gewähren. Hättest mal die ersten Programme sehen sollen ^^
werd mir das mal anschauen,wo noch ein Fehler auftritt...
Gruß Steffen
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige