AW: Commandbutton im Userform deaktivieren
07.05.2017 21:10:24
Lisa
Hallo Franz,
vielen Dank für deine rasche Hilfe! Habe mal Variante zwei ausprobiert, allerdings reagiert nun mein Userform überhaupt nicht mehr sobald ich es aufrufen möchte:
Private Sub cmdAbbruch_Click()
'Schließt das Formular frmBestaende
Unload frmBestaende
End Sub
Private Sub cmdEingabe_Click()
'Beispiel für Prüfung der Eingaben nach Klick auf Schaltfläche
If fncCheckEingaben = False Then
MsgBox "Die Eingaben im Userform sind nicht vollständig", vbOKOnly, "Prüfung-Eingaben"
Else
'Fügt die eingetragenen Werte ins Tabellenblatt und schließt das Formular frmBestaende
Dim intErsteLeereZeile As Long
intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
ActiveSheet.Cells(intErsteLeereZeile, 1).Value = Me.cboBaumart.Value
ActiveSheet.Cells(intErsteLeereZeile, 2).Value = Me.cboMisch.Value
ActiveSheet.Cells(intErsteLeereZeile, 3).Value = Me.txtHa.Value
ActiveSheet.Cells(intErsteLeereZeile, 4).Value = Me.cboZ.Value
ActiveSheet.Cells(intErsteLeereZeile, 5).Value = Me.txtOst.Value
ActiveSheet.Cells(intErsteLeereZeile, 6).Value = Me.txtNord.Value
'Hinweis alle Felder müssen ausgefüllt werden
If cboBaumart.Value = "" Then
Call MsgBox("Es muss eine Auswahl getroffen werden!", vbExclamation, "Auswahlfeld _
ist Leer!")
cboBaumart.SetFocus
Exit Sub
Else
If cboMisch.Value = "" Then
Call MsgBox("Es muss eine Auswahl getroffen werden!", vbExclamation, "Auswahlfeld _
ist Leer!")
cboMisch.SetFocus
Exit Sub
Else
If txtHa.Value = "" Then
Call MsgBox("Es muss die Bestandesgröße angegeben werden!", vbExclamation, " _
Textfeld ist Leer!")
txtHa.SetFocus
Exit Sub
Else
If cboZ.Value = "" Then
Call MsgBox("Es muss eine Auswahl getroffen werden!", vbExclamation, "Auswahlfeld _
ist Leer!")
cboZ.SetFocus
Exit Sub
Else
If txtOst.Value = "" Then
Call MsgBox("Es muss der Ostwert angegeben werden!", vbExclamation, "Textfeld ist _
Leer!")
txtOst.SetFocus
Exit Sub
Else
If txtNord.Value = "" Then
Call MsgBox("Es muss der Nordwert angegeben werden!", vbExclamation, "Textfeld ist _
Leer!")
txtNord.SetFocus
Exit Sub
End If
End If
End If
End If
End If
End If
Unload frmBestaende
Me.Hide
End If
End Sub
Private Sub txtHa_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Nur Zahlen 0-9 und , können eingegeben werden
If KeyAscii = 44 Then
ElseIf KeyAscii 57 Then KeyAscii = 0
End If
End Sub
Private Sub txtNord_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Nur Zahlen 0-9 können eingegeben werden
Select Case KeyAscii
Case 48 To 57
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub txtOst_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Nur Zahlen 0-9 können eingegeben werden
Select Case KeyAscii
Case 48 To 57
Case Else
KeyAscii = 0
End Select
End Sub
Private Function fncCheckEingaben() As Boolean
Dim bolEnable As Boolean
bolEnable = True
If Me.cboBaumart.ListIndex = -1 Then bolEnable = False
If Me.cboMisch.ListIndex = -1 Then bolEnable = False
If Me.cboZ.ListIndex = -1 Then bolEnable = False
If Me.txtHa = "" Then bolEnable = False
If Me.txtOst = "" Then bolEnable = False
If Me.txtNord = "" Then bolEnable = False
fncCheckEingaben = bolEnable
End Function
Private Sub UserForm_Initialize()
'Formular initialisieren
'Auswahlmöglichkeiten cboBaumart
With cboBaumart
.AddItem "Schwarznuss"
.AddItem "Walnuss"
End With
'Auswahlmöglichkeiten cboMisch
With cboMisch
.AddItem "vereinzelt (bis 10%)"
.AddItem "beigemischt (10-40%)"
.AddItem "gemischt (+/- 50%)"
.AddItem "Reinbestand (>90%)"
End With
'Auswahlmöglichkeiten cboZ
With cboZ
.AddItem "32 U"
.AddItem "33 U"
End With
End Sub