Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
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 bei ComboBox ohne Eingabe

Fehler bei ComboBox ohne Eingabe
29.09.2020 13:59:06
Sascha
Hallo zusammen,
Ich verwende in einer VBA-UserForm mehrere ComboBoxen.
Eine For Each-Schleife füllt mittels .AddItem-Methode die ComboBoxen mit Werten.
Zuätzlich füge ich händisch den Wert "" per .AddItem ein.
Folgende Eigenschaften gelten für die ComboBoxen:
MatchEntry = 1 - fmMatchEntryComplete
MatchRequired = True
Style = 0 - fmStyleDropDownCombo
Über ein Makro lese ich letztlich ein Tabellenblatt aus und weise somit den ComboBoxen Initialwerte zu.
So weit, so gut. Mein Problem beginnt, nachdem ein Change-Event die ComboBoxen cmb_Material1 bis 10 aktualisiert. Hierbei erhalten manche dieser Boxen den Wert "".
Aktiviert man eine solche ComboBox mittels Maus, Tab oder Enter, so gibt Excel an, der Eigenschaftswert sei ungültig. Daraufhin muss das Auswahlmenü der ComboBox geöffnet und der Wert "" manuell angewählt werden. Dann ist Excel zufrieden. Highlightet man die angeblich fehlerhafte ComboBox jedoch nicht, gibt es auch keinen Fehler.
Kann mir vielleicht jemand erklären, wie die Meldung zustande kommt, bzw. wie ich dieses Verhalten im Coding abfangen kann?
Hier geht es zur Beispiel-Datei. Die UserForm kann über den CommandButton "Bearbeiten" aufgerufen werden.
https://www.herber.de/bbs/user/140515.xlsm
Sollten Probleme mit der Beispieldatei bestehen, sagt mir gerne Bescheid. Dann versuche ich die Sache noch etwas deutlicher zu machen.
Besten Dank im Voraus und viele Grüße,
Sascha

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei ComboBox ohne Eingabe
29.09.2020 15:45:01
Nepumuk
Hallo Sascha,
teste mal:
Private Sub PlanAuslesen()
    
    'aktuelle Werte in die UserForm einladen
    Dim Spalte As Long, Zeile As Long, i As Integer
    
    '''Zeile und Spalte festlegen
    If cmb_Gelege.Value = "Geb01" Then
        Zeile = 13
        Spalte = 2
    ElseIf cmb_Gelege.Value = "Geb02" Then
        Zeile = 13
        Spalte = 5
    End If
    
    If Not cmb_Gelege.Value = "" Then 'Prüfung, ob ComboBox cmb_Gelege gefüllt ist
        
        With Worksheets("Schmelzplan")
            
            For i = 1 To 10
                
                With .Cells(Zeile, Spalte)
                    If .Text = vbNullString Then
                        Controls("cmb_Material" & CStr(i)).ListIndex = 0
                    Else
                        Controls("cmb_Material" & CStr(i)) = .Text 'Material
                    End If
                End With
                
                Controls("tbx_Faktor" & CStr(i)) = .Cells(Zeile, Spalte + 1).Value 'Faktor
                Controls("tbx_Menge" & CStr(i)) = .Cells(Zeile, Spalte + 2).Value 'Menge
                
                Zeile = Zeile + 1
                
            Next i
        End With
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Fehler bei ComboBox ohne Eingabe
30.09.2020 07:25:46
Sascha
Hallo Nepumuk,
dein Workaround hat einwandfrei funktioniert und mit etwas Recherche verstehe ich jetzt auch, warum Fehler aufgekommen ist. In Punkto Error-handling muss ich wohl noch einiges lernen. :D
Als netten Nebeneffekt kenne ich jetzt auch die Konstante vbNullString. Habe mich etwas belesen und werde sie künftig an Stelle "" nutzen.
Besten Dank für deine schnelle Hilfe!
VG, Sascha

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige