Microsoft Excel

Herbers Excel/VBA-Archiv

VBA: UF Laufzeitfehler


Betrifft: VBA: UF Laufzeitfehler von: Charly
Geschrieben am: 24.09.2019 01:47:00

Hallo,

habe ein Problem mit einem Laufzeitfehler "-2147467259 (80004005)": nicht näher Bezeichnet. in einer UF.

Kurze Beschreibung:
Ich möchte über zwei ComboBoxen eine Vorauswahl in einer Tabelle Treffen.

1. per ComboBox1 in eine Zeile Springen (Bereich im Tabellenblatt)
2. per ComboBox2 eine ID auswählen

Der Fehler tritt auf wenn Ich die 1. Vorauswahl treffen will (ComboBox1) im Code wird mir "Me.CB_ID_Aus.Clear" gelb Markiert, CB_ID_Aus ist ComboBox2.

Kann mir einer Helfen bzw. Sagen was Ich falsch mache.

Danke für jegliche Hilfe, Gruß Charly

Private Sub CB_Bereich_ID_Change()
    Dim i As Long
    '
    'ThisWorkbook.Activate
    '
    With Workbooks("HM2030_ori.xlsm").Worksheets("Werte")
        Me.CB_ID_Aus.Clear
        Select Case Me.CB_Bereich_ID
            Case "WB 1"
            Application.ActiveWindow.ScrollRow = 5 '>> Springe zu Bereich "WB1"
                For i = 2 To 201 '>> ID. aus Tab. Werte, Spalte "B", von Zeile "2-39"
                    If WorksheetFunction.CountIf(Worksheets("Aus").Columns(3), .Cells(i, 6)) =   _
_
0 _
    Then
                        Me.CB_ID_Aus.AddItem .Cells(i, 2)
                    End If
                Next i
            Case "WB 2"
            Application.ActiveWindow.ScrollRow = 408 '>> Springe zu Bereich "WB2"
                For i = 202 To 401  '>> ID. aus Tab. Werte, Spalte "B", von Zeile "41-73"
                    If WorksheetFunction.CountIf(Worksheets("Aus").Columns(3), .Cells(i, 87)) =  _
 _
0 _
    Then
                        Me.CB_ID_Aus.AddItem .Cells(i, 2)
                    End If
                Next i
            Case "WB 3"
            Application.ActiveWindow.ScrollRow = 811 '>> Springe zu Bereich "WB3"
                For i = 402 To 601 '>> ID. aus Tab. Werte, Spalte "B", von Zeile "74-115"
                    If WorksheetFunction.CountIf(Worksheets("Aus").Columns(3), .Cells(i, 156)) = _
 _
 0 _
    Then
                        Me.CB_ID_Aus.AddItem .Cells(i, 2)
                    End If
                Next i
            Case "Haus"
            Application.ActiveWindow.ScrollRow = 1216 '>> Springe zu Bereich "Haus"
                For i = 602 To 801 '>> ID. aus Tab. Werte, Spalte "B", von Zeile "116-130"
                    If WorksheetFunction.CountIf(Worksheets("Aus").Columns(3), .Cells(i, 237)) = _
 _
 0 _
    Then
                        Me.CB_ID_Aus.AddItem .Cells(i, 2)
                    End If
                Next i
            Case Else
        End Select
    End With
' Aufteilung von Bersichen u. ID´s, Tab. "Werte", Spalte "B"
End Sub

Private Sub CB_WB_Change()
    Dim i As Long
    '
    With Workbooks("HM2030_ori.xlsm").Worksheets("Werte")
        Me.CB_Zi.Clear
        Select Case Me.CB_WB
            Case "WB 1"
                For i = 3 To 41 '>> Zi. aus Tab. Werte, Spalte "F", von Zeile "3-41"
                    If WorksheetFunction.CountIf(Worksheets("Aus").Columns(7), .Cells(i, 6)) =   _
_
0 _
    Then
                        Me.CB_Zi.AddItem .Cells(i, 6)
                    End If
                Next i
            Case "WB 2"
                For i = 43 To 75 '>> Zi. aus Tab. Werte, Spalte "F", von Zeile "43-75"
                    If WorksheetFunction.CountIf(Worksheets("Aus").Columns(7), .Cells(i, 6)) =   _
_
0 _
    Then
                        Me.CB_Zi.AddItem .Cells(i, 6)
                    End If
                Next i
            Case "WB 3"
                For i = 77 To 115 '>> Zi. aus Tab. Werte, Spalte "F", von Zeile "77-115"
                    If WorksheetFunction.CountIf(Worksheets("Aus").Columns(7), .Cells(i, 6)) =   _
_
0 _
    Then
                        Me.CB_Zi.AddItem .Cells(i, 6)
                    End If
                Next i
            Case "Haus"
                For i = 116 To 220 '>> Zi. aus Tab. Werte, Spalte "F", von Zeile "116-220"
                    If WorksheetFunction.CountIf(Worksheets("Aus").Columns(7), .Cells(i, 6)) =   _
_
0 _
    Then
                        Me.CB_Zi.AddItem .Cells(i, 6)
                    End If
                Next i
            Case Else
        End Select
    End With
End Sub

Private Sub UserForm_Activate()
' Hier wird die Gruppe Wohnbereiche definiert
    CB_Bereich_ID.List = Array("WB 1", "WB 2", "WB 3", "Haus")
    CB_WB.List = Array("WB 1", "WB 2", "WB 3", "Haus")
End Sub

  

Betrifft: AW: VBA: UF Laufzeitfehler von: Piet
Geschrieben am: 24.09.2019 02:44:11

Hallo Charly

befindet sich die ComboBox in - Workbooks("HM2030_ori.xlsm") - oder in ThisWorkbook??
Was passiert wenn du "ME" bei Clear nur mal zum testen durch "ThisWorkbook" ersetzt??
Haengt sich dann das Makro am naechsten ME Befehl wieder auf???

mfg Piet


  

Betrifft: AW: VBA: UF Laufzeitfehler von: Charly
Geschrieben am: 24.09.2019 05:21:44

Morgen Piet,

die ComboBox befindet sich in "ThisWorkbook".
Nach dem Ich "Me.CB_ID_Aus.Clear" durch "ThisWorkbook.CB_ID_Aus.Clear" ersetzt habe, erscheint die gleiche Fehlermeldung erneut.
Das Makro bleibt an der gleichen Stelle stehen wie zu vor.

Ich habe beide Code´s mit Array´s in einer anderen Mappe in dieser Läuft alles super.

Gruß Charly


  

Betrifft: AW: VBA: UF Laufzeitfehler von: Hajo_Zi
Geschrieben am: 24.09.2019 05:46:31

Hallo Charly,

nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.

Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.

Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.

Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.

Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

GrußformelHomepage


  

Betrifft: AW: VBA: UF Laufzeitfehler von: Charly
Geschrieben am: 24.09.2019 11:20:01

Hallo Piet, Hallo Hajo,

Habe den Fehler grad selbst entdeckt beim Erstellen einer Demo-Mappe.
Der Fehler lag wohl darin, dass Ich den Filename der 1. Mappe geändert habe.

Das ist ein Auszug aus dem Original-Code, wie auch gepostet:
"With Workbooks("HM2030_ori.xlsm").Worksheets("Werte")"
Im Verzeichnis sieht es aber so aus:
MH2030_ori1.xlsm
Im Code sollte es dann eigentlich so aussehen:
"With Workbooks("HM2030_ori1.xlsm").Worksheets("Werte")"

Somit war die Quelle für "Me.CB_ID_Aus.AddItem .Cells(i, 2)" nicht mehr Vorhanden u. somit auch nicht für "Me.CB_ID_Aus".

Sorry für meine Schussligkeit.
Gruß Charly


  

Betrifft: AW: Danke für die Rückmeldung von: Piet
Geschrieben am: 24.09.2019 15:58:21

Hallo Charly

dumme Fehler passieren auch uns Programmierern im Forum. Ich freue mich aber das mein Hinweis dich selbst dazu brachte dir den Code noch mal genau anzuschauen, und so hast du den Fehler selbst entdeckt! Gedankliche Anstubser sehe ich auch als Hilfe zur Selbsthilfe. In diesem Sinne, viel Erfolg weiterhin.

mfg Piet


Beiträge aus dem Excel-Forum zum Thema "VBA: UF Laufzeitfehler "