Makro hüft wegen Combobox zu anderen Makro?

Ich habe folgendes Problem, welches ich nicht ganz nachfolziehen kann.
Habe ein Makro, welches mir aus eine Exceldatei bei erfüllen eines Wertes eine bestimmte Zeile löschen soll (Soweit Sogut)
Nur das Problem, sobald das Makro bei
Selection.Delete Shift:=xl
angekommen ist, hüft es automatisch zum Makro für die Combobox3 (hierüber wird der Wert ausgesucht, welcher aus der am Anfang genannten datei gelöscht wird).
Und das komische, obwohl ich bei dem Makro bei der Combobox auf die Hauptdatei Lagerverwaltung.xls verweise, bleibt es bei der anderen Datei, wodurch ich natürlich einen Fehler bekomme. (Wieso befolgt das Makro nicht den Befehl, das es auf die Lagerverwaltungsdatei hüpfen soll?)

Dies ist das makro, welches die Zeile auf der Datei Vorgabe.xls löschen soll

If zeileanli >= 0 Then
VorgabeName = „Vorgabe.xls“
Windows(VorgabeName).Activate
'Aus Liste SollAnlieferungen in dieser Tabelle entfernen, wenn derAnlieferer gespeichert war
löschz1 = zeileanli + 95
löschz2 = löschz1 & „:“ & löschz1
Rows(löschz2).Select

Selection.Delete Shift:=xl

'Speichern
ActiveWorkbook.Save
End If

Sobald das Makro aber bei „Selection.Delete Shift:=xl“ ankommt (der Befehl wird zwar noch ausgeführt), hüpft es zu dem Maro für die ComboBox3:

Private Sub ComboBox3_Change()
'Für Eingabe Firma
VorgabeName = „Vorgabe.xls“
Windows(„Lagerplatzverwaltung.xls“).Activate 'Obwohl hier der Befehl zum wächseln der Datei steht, bleibt das Makro bei Vorgabe.xls

Sheets(„Formel“).Select 'Hier bekomme ich schon den Fehler, da es dieses Feld in Vorgabe.xls nicht gibt

Range(„C65“) = ComboBox3

'Windows(VorgabeName).Activate
ZeileAnl = ComboBox3.ListIndex
ZeileAnl1 = ZeileAnl + 95
'Soll Karton in Textbox2 eintragen
Kartsoll = „H“ & ZeileAnl1
Kartsoll1 = Range(Kartsoll).Value
'Soll Gesammtgewicht in Textbox3 eintragen
Gesamtge = „I“ & ZeileAnl1
Gesamtge1 = Range(Gesamtge).Value
'Soll Datum in Textbox4 eintragen
Datuso = „F“ & ZeileAnl1
Datuso1 = Range(Datuso).Value
'Windows(„Lagerplatzverwaltung.xls“).Activate
Me.TextBox4.Value = Datuso1
Me.TextBox2.Value = Kartsoll1
Me.TextBox3.Value = Gesamtge1

Windows(„Lagerplatzverwaltung.xls“).Activate
End Sub

Ich hoffe, das ihr mir den Grund erklähren könnt (Oder eine Lösung)

Danke schon mal (wieder)

Hallo Anton,

du löschst Zellen die zum ListFillRange der ComboBox gehören, das ruft das Change-Ereignis auf.

Du kannst den Code des Change-Ereignisses so lassen aber den Code der löscht so umschreiben daß vor dem Löschbefehl der ListFillRange auf „“ gesetzt wird und nach dem Löschbefehl wieder mit dem Zellbereich:

Sub tt()
Dim Merker As String
' dein Code
Merker = ActiveSheet.OLEObjects("ComboBox1").ListFillRange
ActiveSheet.OLEObjects("ComboBox1").ListFillRange = ""
'dein Code der löscht
ActiveSheet.OLEObjects("ComboBox1").ListFillRange = Merker
' dein Code
End Sub

Alternativ in deinem Code in die Zeile vor dem Lschbefehl einfügen:
Nicht=True

Dazu muß dann die globale Variable Nicht so im Code des Change-Ereignisses ausgewertet werden:

Option Explicit
Public Nicht As Boolean

Private Sub ComboBox3\_Change()
If Nicht = True Then
 Nicht = False
 Exit Sub
End If
' dein Code
End Sub

Ist damit auch das „Hüpf“-Problem beseitigt?

Zu 99% kann man auf Select und Activate verzichten.

Gruß
Reinhard

Hallo Reinhard.

Danke für deine Hilfe. Werde es morgen gleich mal ausprobieren.

Was meinst du mit
Zu 99% kann man auf Select und Activate verzichten

Mit welchen Befehl, und hat es vor oder Nachteile.

Danke nochmal.

Mfg Anton

Was meinst du mit
Zu 99% kann man auf Select und Activate verzichten

Mit welchen Befehl, und hat es vor oder Nachteile.

Hallo Anton,

kein anderer Befehl, ersatzlos streichen.

Anstatt

Range(„a1“).select
selection.value =5

gleich

Range(„a1“).value =5

Gruß
Reinhard

Funktioniert leider nicht
Hallo. Ich habe deinen Code für die Combobox3 so eingegeben, wie dur mir gesendet hast, leider bekomme ich einen
Laufzeitfehler 1004
Die OLEObjects-Eigenschaft des Worksheet-Objektes kann nicht zugeordnet werden.

Was mach ich falsch?

Danke.

Mfg

Hallo. Ich habe deinen Code für die Combobox3 so eingegeben,
wie dur mir gesendet hast, leider bekomme ich einen
Laufzeitfehler 1004
Die OLEObjects-Eigenschaft des Worksheet-Objektes kann nicht
zugeordnet werden.

Hallo Anton,

nicht „Combobox3“ sondern „ComboBox3“

Gruß
Reinhard

Hallo Reinhard.

Habe heute nochmal nachgesehen.
Ich habe es eh so geschrieben"ComboBox3"
bekomme aber immer wieder die gleiche Fehlermeldung.
(Habe es auch schon ohne Anführungszeichen probieret - ging auch nicht)

Weißt du wieso?

Du hast mir ja am Anfang geschrieben, das diese Hüpferei wegen der änderung in der ComboBox Liste ist.
Nur verstehe ich nicht, weshalb er über den Programmcode geht, wo ihm gesagt wird, das er eine andere Excel Datei aktivieren soll.

danke

Mfg Toni
Mfg