Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
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

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige