auf meiner Userform befinden sich unter anderem mehrere Textfelder.
Beim verlassen des Textfeldes "txtLewa" soll in das Textfeld "txtBetrag_Transfer"
1.
das Ergebnis aus z.B. "txtLewa.Value * txtBetrag_Gesellschaft_Konto.Value" eingetragen werden und
2.
in das Zahlenformat mit 1000er Punkt und 2 Nachkommastellen gebracht werden. (z.B. 1.000,00)
auf einem Rechner mit bulgarischem Office wird das Zahlenformat ohne 1000er Punkt und anstatt des Kommas in einen Punkt und mehr als 2 Nachkommastellen umgewandelt.
Private Sub txtLewa_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Val(txtLewa.Text) "" Then
If Not IsNumeric(txtLewa.Text) = True Then
MsgBox "Geben Sie eine positive Zahl ein"
txtLewa.Text = ""
Cancel = True
End If
End If
If txtLewa = "" Or txtEuro = "" Then
Me.txtBetrag_Transfer = ""
Else
If txtLewa > 0 And txtEuro > 0 And LCase(Right(cboGesellschaft_Konto.Text, 4)) = "euro" And _
LCase(Right(cboGesellschaft_Konto_intern.Text, 4)) = "lewa" Then
Me.txtBetrag_Transfer = txtLewa.Value * txtBetrag_Gesellschaft_Konto.Value
Me.txtBetrag_Transfer = Format(Me.txtBetrag_Transfer, "#,##0.00")
End If
If txtLewa > 0 And txtEuro > 0 And LCase(Right(cboGesellschaft_Konto.Text, 4)) = "lewa" And _
LCase(Right(cboGesellschaft_Konto_intern.Text, 4)) = "euro" Then
Me.txtBetrag_Transfer = txtBetrag_Gesellschaft_Konto.Value / txtLewa.Value
Me.txtBetrag_Transfer = Format(Me.txtBetrag_Transfer, "#,##0.00")
End If
End If
End Sub
Mit folgendem Code sollen die Ergebnisse aus den Textfeldern in eine Exceltabelle übertragen werden.
Die Übertragung funktioniert im bulgarischen Excel aus allen Textfeldern ausser aus "txtBetrag_Transfer", dort wo die Zahl nicht richtig umgewandelt wird.
Bei der Übertragung wird der Inhalt aus "txtBetrag_Transfer" noch mit -1 multipliziert.
Private Sub cmdOK_Click()
Dim cell As Range
Dim a As Long
Dim lbMsg As Byte
SpeedUp (True)
ActiveSheet.Unprotect Password:="Peter"
Dim nz As Integer, rngZ As Range
nz = Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each rngZ In Rows(nz - 1).SpecialCells(xlCellTypeFormulas)
rngZ.Copy
Cells(nz, rngZ.Column).PasteSpecial Paste:=xlPasteFormulas
Next
Application.CutCopyMode = False
'Application.CutCopyMode = False
'Cells(nz, 1).Select
'Dim nz As Integer
'nz = Cells(Rows.Count, 1).End(xlUp).Row + 1
'Rows(nz - 1).Copy
'Cells(nz, 1).PasteSpecial Paste:=xlPasteFormats
Cells(nz, 1).Value = CDate(Me.txtDatum)
Cells(nz, 2).Value = CDate(Me.txtfaellig_zum)
Cells(nz, 3).Value = Me.cboArt
Cells(nz, 4).Value = Me.cboGesellschaft_Konto + " - " + Me.cboGesellschaft_Konto_intern
Cells(nz, 5).Value = Me.txtZahlungsgrund
'Mit Wechselkurs
'Konten und Zellbezüge für Zahlungsausgang bei Zahlungsart transfer (t)
If Me.cboGesellschaft_Konto_intern = "DA/Al LEWA" Then
Cells(nz, 12).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "DA/Al EURO" Then
Cells(nz, 20).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "DA/Ko LEWA" Then
Cells(nz, 24).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "DA/Ko EURO" Then
Cells(nz, 28).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "DA/Tr LEWA" Then
Cells(nz, 32).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "DA/Tr EURO" Then
Cells(nz, 36).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "AS/Al LEWA" Then
Cells(nz, 34).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "LB/Al LEWA" Then
Cells(nz, 44).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "LB/Al EURO" Then
Cells(nz, 52).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "LHB/Al LEWA" Then
Cells(nz, 56).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "LHB/Al EURO" Then
Cells(nz, 64).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "AW/Al LEWA" Then
Cells(nz, 68).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "AW/Al EURO" Then
Cells(nz, 72).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "AW/Tr LEWA" Then
Cells(nz, 76).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
If Me.cboGesellschaft_Konto_intern = "AW/Tr EURO" Then
Cells(nz, 80).Value = CDec(Me.txtBetrag_Transfer) * -1
End If
'Konten und Zellbezüge für Zahlungseingang bei Zahlungsart transfer (t)
If Me.cboGesellschaft_Konto = "DA/Al LEWA" Then
Cells(nz, 13).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "DA/Al EURO" Then
Cells(nz, 21).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "DA/Ko LEWA" Then
Cells(nz, 25).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "DA/Ko EURO" Then
Cells(nz, 29).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "DA/Tr LEWA" Then
Cells(nz, 33).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "DA/Tr EURO" Then
Cells(nz, 37).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AS/Al LEWA" Then
Cells(nz, 41).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "LB/Al LEWA" Then
Cells(nz, 45).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "LB/Al EURO" Then
Cells(nz, 53).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "LHB/Al LEWA" Then
Cells(nz, 57).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "LHB/Al EURO" Then
Cells(nz, 65).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AW/Al LEWA" Then
Cells(nz, 69).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AW/Al EURO" Then
Cells(nz, 73).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AW/Tr LEWA" Then
Cells(nz, 77).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
If Me.cboGesellschaft_Konto = "AW/Tr EURO" Then
Cells(nz, 81).Value = CDec(Me.txtBetrag_Gesellschaft_Konto)
End If
Unload Me
Range("A7:CM2000").Sort Key1:=Range("A7"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Columns(1).Find(CDate(Me.txtDatum)).Select
ActiveSheet.Protect Password:="Peter"
SpeedUp (False)
End Sub
Im bulgarischen Excel kommt dann die Fehlermeldung:
Runtime Error "13": Typ Missmatch
In folgendem Code funktioniert die Formatierung auch im bulgarischen Excel:
Private Sub txtBetrag_Gesellschaft_Konto_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Val(txtBetrag_Gesellschaft_Konto.Text) "" Then
If Not IsNumeric(txtBetrag_Gesellschaft_Konto.Text) = True Then
MsgBox "Geben Sie eine positive Zahl ein"
txtBetrag_Gesellschaft_Konto.Text = ""
Cancel = True
End If
End If
Me.txtBetrag_Gesellschaft_Konto = Format(Me.txtBetrag_Gesellschaft_Konto, "#,##0.00")
End Sub
Kann mir jemand helfen?
Danke im Voraus
Grüße aus Berlin