4.7k Aufrufe
Gefragt in Tabellenkalkulation von fedjo Experte (2.2k Punkte)
Hallo,
benötige mal wieder Eure Hilfe um einen Fehler zu beseitigen der in Excel 2007 angezeigt wird, Excel 2000 funktioniert alles.

Es wird ein Begriff einer ListBox (UserForm) in der Tabelle gesucht und dann die Ergebnisse von TextBox, ComboBox (UserForm) in die Tabelle (aZelle.Offset ) eingetragen.
Der Fehler wird hier angezeigt: aZelle.Offset(0, 5) = TextBox2.Value
Laufzeitfehler91: Objektvariable oder with-Blockvariable nicht festgelegt.

Ich hoffe Ihr findet eine Lösung dazu.
Gruß
fedjo

fBegriff = ListBox3.Value
fBegriff = ListBox4.Value
Set aZelle = Sheets("Allgemein").Range("D4:D" & Range("D65536").End(xlUp).Row) _
.Find(fBegriff, lookat:=xlWhole) 'Tabelle1, Spalte 1 Eintrag wird überprüft

Frage = MsgBox("Wollen Sie die wirklich die Kolbenstangen einlagern oder die Stückzahl ändern.", _
vbYesNo + vbExclamation, "Achtuung")
If Frage = vbYes Then
aZelle.Offset(0, 5) = TextBox2.Value 'Änderung eintragen
aZelle.Offset(0, 2) = ComboBox5.Value

8 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Fedjo,

was sofort auffällt bei Range("D65536") fehlt die Tabelle, vielleicht solltest Du mit With arbeiten?

Gruß Hajo
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi fedjo :-)

If aZelle Is Nothing Then
'kein fund
Else
'fund
End If


gruss nighty
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi fedjo :-)

vielleicht etwas in der art :-))

gruss nighty

With Worksheets("Allgemein")
fBegriff = ListBox4.Value
Set aZelle = .Range("D4:D" & .Range("D" & Rows.Count).End(xlUp).Row).Find(fBegriff, lookat:=xlWhole)
If aZelle Is Nothing Then
MsgBox ("Keibe Daten gefunden")
Else
If MsgBox("Wollen Sie die wirklich die Kolbenstangen einlagern oder die Stückzahl ändern.", _
vbYesNo + vbExclamation, "Achtuung") = vbYes Then
aZelle.Offset(0, 5) = TextBox2.Value
aZelle.Offset(0, 2) = ComboBox5.Value
End If
End If
End With
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

in deinem Code fehlt vor Rows.Count der Punkt (.) - das führt unter bestimmten Bedingungen zum Laufzeitfehler.

Bis später,
Beverly
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Beverly :-)

sehr aufmerksam,danke :-))

gruss nighty
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo,
@ Hajo,
habe den Code mit der Tabelle ergänzt, gleiche Fehlermeldung.
Wie sieht der Code mit "With" aus?

@ nighty,
habe dein Makro etwas verändert, das jetzt so funktioniert.
Die If Abfrage nach dem Fund ist nicht nötig, weil der Begriff immer vorhanden ist.
fBegriff =
ListBox4.Value
Set aZelle = Sheets("Allgemein").Range("D4:D" & Sheets("Allgemein").Range("D" & Rows.Count).End(xlUp).Row).Find(fBegriff, lookat:=xlWhole)
If MsgBox("Wollen Sie die wirklich die Kolbenstangen einlagern oder die Stückzahl ändern.", _
vbYesNo + vbExclamation, "Achtuung") = vbYes Then
aZelle.Offset(0, 5) = TextBox2.Value 'Änderung eintratgen
aZelle.Offset(0, 2) = ComboBox5.Value
End If

Danke an alle für eure Hilfe.

Gruß
fedjo
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Fedjo,

auch auf deinen Code trifft das zu, was ich bereits in meinem vorhergehenden Beitrag angemerkt habe: es fehlt etwas, aber in diesem Fall ist es Tabellenblatt. Einfacher ist es aber auf jeden Fall mit With - wie Hajo schon geschrieben hat


With Sheets("Allgemein")
Set aZelle = .Range("D4:D" & .Range("D" & _
.Rows.Count).End(xlUp).Row).Find(fBegriff, lookat:=xlWhole)
End With


Bis später,
Karin
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Karin,
mit With funktioniert prima, werde deinen Code verwenden.

Danke noch mal für deine Unterstützung.

Gruß
fedjo
...