Bin neu hier und habe vieles aus anderen Beiträgen abkupfern können. Im Moment drückt die Zeit, so dass ich keinen echten systematischen Einstieg gewählt habe sondern eher Codes aus div. Foren zusammenkopiert habe und per learning by doing das meiste hinbekommen habe. Hat bis jetzt ganz gut funktioniert, doch jetzt komme ich nicht weiter:
Hintergrund ist ein kleines Programm, welches für eine Kaffekasse dient. Wer wann wieviel einzahlt, das passt alles. Jetzt bin ich an dem Punkt "Sonderzahlungen", d.h. Sondereinzahlungen und Entnahmen. Bei letzterem streikt mein Code, ABER NUR bei Kommazahlen.
Hier mal die Bausteine:
Eingabe der [Formatiert habe ich die Excel-Zellen, nicht die Eingabe der Textboxen]:
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 13 Then
KeyAscii = 0
MsgBox "Osterei gefunden"
ElseIf KeyAscii = 46 Or KeyAscii = 44 Then
If InStr(TextBox2.Text, ".") Then
KeyAscii = 0
ElseIf KeyAscii = 44 Then 'liefert Punkte
KeyAscii = 46 'liefert Punkte
End If
ElseIf KeyAscii > 58 Or KeyAscii 8 Then
KeyAscii = 0
End If
End Sub
Funktioniert, wie ich mir das vorstelle.Auswahl Ein- oder Auszahlung über optionbuttons:
Private Sub CommandButton1_Click()
Dim erste_freie_Zeile As Integer
erste_freie_Zeile = Sheets("Sonderzahlungen").Range("A65536").End(xlUp).Offset(1, 0).Row
If OptionButton1.Value Then
Sheets("Sonderzahlungen").Cells(erste_freie_Zeile, 1) = TextBox1.Text
Sheets("Sonderzahlungen").Cells(erste_freie_Zeile, 2) = TextBox2.Text
Sheets("Sonderzahlungen").Cells(erste_freie_Zeile, 3) = TextBox3.Text
ElseIf OptionButton2.Value Then
Sheets("Sonderzahlungen").Cells(erste_freie_Zeile, 2) = CDbl(TextBox2.Value) * -1
Sheets("Sonderzahlungen").Cells(erste_freie_Zeile, 1) = Date
Sheets("Sonderzahlungen").Cells(erste_freie_Zeile, 3) = TextBox3.Text
Else
MsgBox ("Bitte eine der beiden Optionen auswählen!")
Exit Sub
End If
End If
Unload Me
Unload UserForm2
Load UserForm2
UserForm2.Show
End Sub
Bsp. was mir ausgegeben wird:
Einzahlung (optionbutton1)
5 => dargestellt in Textbox als 5 => Ausgabe an Excel 5,00
5,1 => dargestellt als 5.1 => Ausgabe an Excel 5,10
5,12 => dargestellt als 5.12 => Ausgabe an Excel 5,12
Auszahlung (optionbutton2)
5 => dargestellt in Textbox als 5 => Ausgabe an Excel - 5,00
5,1 => dargestellt als 5.1 => Ausgabe an Excel - 51,00
5,12 => dargestellt als 5.12 => Ausgabe an Excel - 512,00
Lösungsansätze, die ich versucht hatte:
- statt *-1 mit einem weiteren Textbox.value, (fester Wert -1; invisible) => gleiches Ergebnis
- selection.numberformat habe ich mal in einem leeren Tabellenblatt benutzt und da hat es funktioniert. Dreht sich also wohl nur um die Stelle, an die ich es schreibe...
Ich würde mich über eine kurze Rückmeldung freuen.
Grüße
Mathias