Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: userform ungültige Eigenschaftswerte

userform ungültige Eigenschaftswerte
Daniel
Hallo
ich habe folgendes Problem mit einer Userform:
ich bekomme ständig die Fehlermeldung: "Ungültiger Eigenschaftswert", erhalte aber keinen Hinweis darauf, wie und wo ich den Fehler abstellen kann.
kann mir jemand dabei helfen?
hier die Datei:
https://www.herber.de/bbs/user/69700.xls
um den Fehler zu erzeugen muss man:
- die Datei starten
- im Tabellenblatt "Daten" den Button "Schaltfläche 1" klicken
- in der sich öffnenden Userform den Reiter "Annahme" auswählen
- in der Combobox "Verkäufer-Nr" dann "neu" auswählen
- auf ein anderes Steuerelement klicken, dann erscheint der Fehler
ich habe keinen Plan, welches der Steuerelemente den Fehler erzeugt und wie ich den Falschen Eigenschaftswert finden kann. Bis gestern liefs noch fehlerfrei und bewusst habe ich an den Steuerelementen im Reiter Annahme nichts geändert.
kleiner Hinweis noch, beim Start erzeugt die Datei im gleichen Verzeichnis 2 weitere CSV-Dateien: "_Artikel.csv" und "_Verkäufer.csv",
frohe Pfingsten, Daniel
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: userform ungültige Eigenschaftswerte
24.05.2010 09:49:53
Ramses
Hallo
ich bin noch nicht ganz durch, ist ja auch etwas komplex, aber was mir aufgefallen ist:
Private Sub cboAKdNr_Change()
Dim Zelle As Range
Set Zelle = rngV.Columns(2).Find(what:=cboAKdNr.Text, lookat:=xlWhole)
If Not Zelle Is Nothing Then cboAKdNr.ListIndex = Zelle.Row - 1
End Sub
WAS passiert wenn Zelle Nothing ist ?
Davon ist ja einiges weitere abhängig in deinem Programm.
Set Zelle = rngV.Columns(2).Find(what:=cboAKdNr.Text, lookat:=xlWhole)
Beim starten und neu anlegen der externen Daten und Worksheets ist "rngV" auf den Bereich A1:M1 definiert, der Suchvorgang läuft daher erst mal ins Leere.
Schau mal ob du damit was anfangen kannst.
Gruss Rainer
Anzeige
AW: userform ungültige Eigenschaftswerte
24.05.2010 11:16:49
Daniel
Hi
erstmal danke für deine Mühe.
wenn der Suchwert nicht gefunden wird, passiert erstmal nichts.
im Prinzip ist das so:
- wenn in der Combobox der Anwender einen Wert auswählt und anklickt, werden die weiteren Daten zu der Vk_Nummer in die Felder der Userform geladen, das passiert im KLICK-Event.
wenn jetzt der Anwender die Daten von Hand eintippt, passiert erstmal nichts.
um jetzt den Code vom Klick-Event nicht nochmal wiederholen zu müssen, setzte ich einfach den Listindex der Combobox auf die entsprechende Zeile und löse damit das Klick-Event aus.
Das soll halt nur passieren, wenn die eingegebene VK_Nr auch in der Liste vorkommt.
Gruß, Daniel
Anzeige
AW: userform ungültige Eigenschaftswerte
24.05.2010 11:16:49
Daniel
Hi
erstmal danke für deine Mühe.
wenn der Suchwert nicht gefunden wird, passiert erstmal nichts.
im Prinzip ist das so:
- wenn in der Combobox der Anwender einen Wert auswählt und anklickt, werden die weiteren Daten zu der Vk_Nummer in die Felder der Userform geladen, das passiert im KLICK-Event.
wenn jetzt der Anwender die Daten von Hand eintippt, passiert erstmal nichts.
um jetzt den Code vom Klick-Event nicht nochmal wiederholen zu müssen, setzte ich einfach den Listindex der Combobox auf die entsprechende Zeile und löse damit das Klick-Event aus.
Das soll halt nur passieren, wenn die eingegebene VK_Nr auch in der Liste vorkommt.
Gruß, Daniel
Anzeige
AW: userform ungültige Eigenschaftswerte
24.05.2010 12:04:36
fcs
Hallo Daniel,
hab mich auch schon ein paar Minuten durch dein Userform gesucht/gekämpft.
Die Meldung wird ausgelöst, weil die Eigenschaft "MatchRequired" für die ComboBox "cboAKdNr" auf True gesetzt ist, was auf den 1. Blick ja auch Sinn macht.
Das Problem ist jetzt, dass wenn du als Nummer "neu" wählst in der Prozedur "Private Sub cboAKdNr_click()"
die nächste Kunden-Nummer berechnet wird und der Wert der Kombobox auf diese Nummer gesetzt wird. Da diese Nummer in der Auswahliste fehlt kommt es beim Verlassen der Kombobox zu der Fehlermeldung.
Einfachste Lösung: Du setzt die Eigenschaft "MatchRequired" für die ComboBox "cboAKdNr" auf False. Dann scheint alles zu funktionieren.
Andere Lösungen werden etwas komplizierter. Wenn die Auswahlliste der Box um die neue Nummer ergänzt wird und anschliessend der Wert auf die Neue Nummer gesetzt wird, dann werden das Change- und/oder Click-Ereignis der Combobox nochmals ausgelöst und es kommt zu weiteren Fehlermeldungen. Dies kann man nur mit Hilfe einer entsprechenden Prüfvariablen umgehen, da Application.DisableEvents in UF nicht funktioniert.
Gruß
Franz
'Zuätzliche Variable im UF-Modul dekarieren
Option Explicit
Dim bolBox As Boolean
Private Sub cboAKdNr_Change()
Dim Zelle As Range
If bolBox = True Then Exit Sub
bolBox = True
Set Zelle = rngV.Columns(2).Find(what:=cboAKdNr.Text, lookat:=xlWhole)
If Not Zelle Is Nothing Then cboAKdNr.ListIndex = Zelle.Row - 1
bolBox = False
End Sub
Private Sub cboAKdNr_DropButtonClick()
If bolBox = True Then Exit Sub
bolBox = True
With cboAKdNr
.List = rngV.Columns(2).Resize(WorksheetFunction.Max(2, rngV.Rows.Count)).Value2
.List(0, 0) = "neu"
End With
bolBox = False
End Sub
Private Sub cboAKdNr_click()
Dim arr, newNumber
If bolBox = True Then Exit Sub
bolBox = True
Select Case cboAKdNr.Value
Case "neu"
'neue Kunden-Nummer holen
Application.ScreenUpdating = False
Set wb = DB_Sperren_zum_Schreiben(dbV)
newNumber = WorksheetFunction.Max(100,  _
WorksheetFunction.Max(ThisWorkbook.Sheets(dbV).Columns(2)) + 1)
cboAKdNr.AddItem newNumber
wb.Sheets(1).Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = newNumber
DB_Speichern_und_Freigeben wb
cboAKdNr = newNumber
Application.ScreenUpdating = True
Call A_Zeile_hinzu
Case Else
With rngA.Columns(2)
If WorksheetFunction.CountIf(.Cells, cboAKdNr) > 0 Then
LB_Artikel.List = .Find(what:=cboAKdNr.Value, _
lookat:=xlWhole).Resize(WorksheetFunction.CountIf(.Cells, cboAKdNr.Value), _
LB_Artikel.ColumnCount).Value2
Else
LB_Artikel.Clear
End If
End With
arr = rngV.Columns(2).Find(what:=cboAKdNr.Value, lookat:=xlWhole).Resize(1, 8).Value2
tbAName = arr(1, 2)
tbAAddresse = arr(1, 3)
tbATel = arr(1, 4)
tbAMail = arr(1, 5)
tbAPausch = arr(1, 6)
chkPauschbez = arr(1, 6) = arr(1, 7)
tbAProv = arr(1, 8) * 100 & "%"
cboAArtikel.Value = ""
cboAFarbe.Value = ""
cboAMarke.Value = ""
'Grösse
'Text
tbAPmax = ""
tbAPmin = ""
End Select
bolBox = False
End Sub

Anzeige
AW: gelöst
24.05.2010 12:35:12
Daniel
da wäre ich jetzt nicht so schnell drauf gekommen
Super, vielen Dank
jetzt kann ich wieder beruhigt weiterarbeiten.
Grüssle, Daniel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Userform: Ungültige Eigenschaftswerte in Excel beheben


Schritt-für-Schritt-Anleitung

Um das Problem mit der Fehlermeldung "Ungültiger Eigenschaftswert" in Deiner Userform zu beheben, folge diesen Schritten:

  1. Öffne die Excel-Datei, die die Userform enthält.
  2. Klicke im Tabellenblatt "Daten" auf die Schaltfläche "Schaltfläche 1".
  3. Wähle im sich öffnenden Dialog den Reiter "Annahme" aus.
  4. Wähle in der Combobox "Verkäufer-Nr" den Eintrag "neu" aus.
  5. Klicke auf ein anderes Steuerelement, um den Fehler zu erzeugen.

Falls der Fehler auftritt, überprüfe die Eigenschaften der Combobox in den VBA-Entwicklertools.


Häufige Fehler und Lösungen

Ein häufiger Grund für die Fehlermeldung "Ungültiger Eigenschaftswert" ist die Eigenschaft "MatchRequired" der Combobox. Wenn diese auf True gesetzt ist und der ausgewählte Wert nicht in der Liste vorhanden ist, kommt es zu der Fehlermeldung.

Lösung:

  1. Setze die Eigenschaft "MatchRequired" der Combobox cboAKdNr auf False.
  2. Alternativ kannst Du eine Prüfvariable in den VBA-Code integrieren, um unerwünschte Ereignisse zu verhindern:
Option Explicit
Dim bolBox As Boolean

Private Sub cboAKdNr_Change()
    Dim Zelle As Range
    If bolBox = True Then Exit Sub
    bolBox = True
    Set Zelle = rngV.Columns(2).Find(what:=cboAKdNr.Text, lookat:=xlWhole)
    If Not Zelle Is Nothing Then cboAKdNr.ListIndex = Zelle.Row - 1
    bolBox = False
End Sub

Alternative Methoden

Wenn Du die Fehlermeldung weiterhin erhältst, probiere eine der folgenden Methoden:

  • Prüfe die Datenquelle der Combobox, um sicherzustellen, dass alle erwarteten Werte vorhanden sind.
  • Ergänze die Werte in der Liste der Combobox dynamisch, bevor der Benutzer "neu" auswählt.
Private Sub cboAKdNr_DropButtonClick()
    If bolBox = True Then Exit Sub
    bolBox = True
    With cboAKdNr
        .List = rngV.Columns(2).Resize(WorksheetFunction.Max(2, rngV.Rows.Count)).Value2
        .List(0, 0) = "neu"
    End With
    bolBox = False
End Sub

Praktische Beispiele

Hier sind einige Beispiele, die Dir helfen, den Code zu verstehen und anzupassen:

  • Wenn der Benutzer "neu" auswählt, wird eine neue Kunden-Nummer generiert und der Combobox hinzugefügt.
  • Der folgende Code zeigt, wie Du dies umsetzt:
Case "neu"
    newNumber = WorksheetFunction.Max(100, WorksheetFunction.Max(ThisWorkbook.Sheets(dbV).Columns(2)) + 1)
    cboAKdNr.AddItem newNumber

Tipps für Profis

  • Verwende Application.ScreenUpdating = False, um das Flackern des Bildschirms beim Aktualisieren der Userform zu vermeiden.
  • Stelle sicher, dass alle Steuerelemente korrekt benannt sind, um Verwirrung zu vermeiden.
  • Teste Deine Userform gründlich, um sicherzustellen, dass alle möglichen Benutzeraktionen abgedeckt sind.

FAQ: Häufige Fragen

1. Was bedeutet die Fehlermeldung "Ungültiger Eigenschaftswert"? Diese Fehlermeldung tritt auf, wenn ein Steuerelement einen Wert erhält, der nicht in der Liste der erlaubten Werte vorhanden ist, beispielsweise wenn "MatchRequired" auf True gesetzt ist.

2. Wie kann ich die Eigenschaften eines Steuerelements in Excel anpassen? Du kannst die Eigenschaften eines Steuerelements im VBA-Editor anpassen, indem Du mit der rechten Maustaste auf das Steuerelement klickst und "Eigenschaften" auswählst. Dort kannst Du "MatchRequired" und andere Eigenschaften ändern.

3. Was kann ich tun, wenn ich nicht herausfinde, welches Steuerelement den Fehler verursacht? Du kannst den VBA-Code Schritt für Schritt durchgehen und Debugging-Tools verwenden, um herauszufinden, an welcher Stelle der Fehler auftritt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige