AW: Beispiel Code Userform
03.01.2021 11:53:53
fcs
Hallo Leito,
je besser du deine Fragen vorbereitest, desto besser kann dir geholfen werden.
In vielen Fällen ist eine kleine Beispieldatei hilfreich - ggf. mit anonymisierten persönlichen oder sensiblen Daten. Dadurch vermeidest du ggf. ein unnötiges hin und her von Fragen und Nachbesserungen.
Bedenke: Du bekommst hier Hilfe für umme, die von den Helfern in der Freizeit oder in "Leerlauf-Zeiten" geleistet wird.
Es ist auch meist erforderlich, dass die Eingaben geprüft werden, bevor sie ins Tabellenblatt eingetragen werden.
Musseingaben und/oder Datentypen
Bezüglich der Anzeige von Menge als Währung:
Prüfe mal das Datenformat der Zellen in Spalte E des Tabellenblattes. Evtl. ist da ja irgendwas als Währung formatiert. Excel macht manchmal seltame/unerwüschte Sachen - mir ist aber nicht bekannt, dass Single- oder Double-Zahlen automatisch in Währung umgewandelt werden.
Noch ein paar Hinweise:
Deklariere Variablen für Zeilen als Long.
In Grenzfällen kann es passieren, dass in der neuesten Excelversion der Zahlenbereich für Integer-Zahlen überschritten wird.
Verwende bei der Umwandlung von Text in Zahlen CDbl und nicht CSng.
CSng produziert öfters unerwünschte Nachkommastellen.
LG
Franz
Private Sub btnOK_Click()
'Eingaben der Schaltflächen in die Arbeitsmappe übernehmen
Dim last As Long 'Long statt Integer
Dim msgText As String
'Eingaben auf Vollständigkeit und korrekten Datentyp prüfen
If Not IsDate(Me.edtDatum) Then msgText = msgText & vbLf & "Datum ist kein gültiger _
Datumswert"
If Not IsNumeric(Me.edtBetrag) Then msgText = msgText & vbLf & "Betrag ist keine Zahl"
If Not IsNumeric(Me.edtMenge) Then msgText = msgText & vbLf & "Menge ist keine Zahl"
If Me.objektbuttonname1 = False And Me.objektbuttonname2 = False Then _
msgText = msgText & vbLf & "Objekt-Name ist nicht ausgewählt"
If Me.objektbutton1 = False And Me.objektbutton2 = False And Me.objektbutton3 = False Then _
_
msgText = msgText & vbLf & "Objekt-Option ist nicht ausgewählt"
If msgText "" Then
MsgBox "Eingaben sind unvollständig oder ungültig" & msgText, vbInformation + vbOKOnly, _
_
"Überprüfung der Eingaben"
Exit Sub
End If
last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
ActiveSheet.Cells(last, 1).Value = CDate(dlgxxx.edtDatum.Value)
ActiveSheet.Cells(last, 6).Value = CCur(dlgxxx.edtBetrag.Value)
ActiveSheet.Cells(last, 5).Value = CDbl(dlgxxx.edtMenge.Value) 'CDbl statt CSng
If objektbuttonname1.Value = True Then Cells(last, 2).Value = "Name1"
If objektbuttonname2.Value = True Then Cells(last, 2).Value = "Name2"
If objektbutton1.Value = True Then Cells(last, 4).Value = "PMK"
If objektbutton2.Value = True Then Cells(last, 4).Value = "PKM"
If objektbutton3.Value = True Then Cells(last, 4).Value = "PKG"
End Sub