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
Es währe vieleicht eine Lösung, wenn ich vor dem löschbefehl, die Liste in einer Variable gebe, und nach dem löschen der BomboBox wieder zuweise.
Ich habe es mit diesem Befehl probiert, aber da bekomme ich immer einen Fehler:
(Laufzeitfehler 1004
Die OLEObjects-Eigenschaft des Worksheet-Objektes kann nicht zugeordnet werden.)
Dim Merker As String
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
Merker = ActiveSheet.OLEObjects("ComboBox1").ListFillRange
Selection.Delete Shift:=xl
ActiveSheet.OLEObjects("ComboBox1").ListFillRange = Merker
'Speichern
ActiveWorkbook.Save
End if
Ich hoffe, ihr könnt mir hier weiterhelfen.
Und hoffentlich auch einen Grund nennen, weshalb das Makro (wenn es vor dem löschbefehl ) zum ComboBox Makro springt, den Befehl "Windows("Lagerplatzverwaltung.xls").Activate"
ignoriert.
Danke an alle.