Hallo,
den nachstehenden Code, der mit dem Exit-Ereignis den eingebenen Betrag in einen Währungsbetrag umwandelt, möchte ich in eine Funktion, nicht auf der Form, sondern in einem Modul „SM“ auslagern:
Bisher:
Private Sub cboGuthaben_Exit(ByVal Cancel As MSForms.ReturnBoolean)
cboGuthaben = Format(cboGuthaben, „###,##0.00“)
End Sub
Versuch:
Public Function Tsd(i) '*** Fügt Tsd.-Punkt und Komma ein ***
Tsd = Format(i, „###,##“)
End Function
Private Sub cboGuthaben_Exit(ByVal Cancel As MSForms.ReturnBoolean)
i = cboGuthaben
i = SM.Tsd(i)
End Sub
Was muss ich ändern?
Danke und Gruß
             
            
              
              
              
            
            
           
          
            
            
              
den nachstehenden Code, der mit dem Exit-Ereignis den
eingebenen Betrag in einen Währungsbetrag umwandelt, möchte
ich in eine Funktion, nicht auf der Form, sondern in einem
Modul „SM“ auslagern:
Was muss ich ändern?
Hallo W,
es ist immer gut option Explicit zu benutzen, dadurch wirst du gezwungen zumindest
Dim i
zu benutzen, obwohl Dim i as String besser wäre.
(Extrax–Optionen–Variablendeklaration erforderlich)
Ansonsten, es funktioniert doch!?
Gruß
Reinhard
             
            
              
              
              
            
            
           
          
            
            
              Hallo,
Was muss ich ändern?
- Du musst nicht angeben in welchem Modul die Funktion liegt.
Also nicht: i = SM.Tsd(i)
sondern nur: i = Tsd(i)
- 
Wichtig ist das der Datentyp der Variable als Variant oder String deklariert wird. Ansonsten klappt das formatieren nicht. 
- 
Bei zukünftigen Fragen etwas mehr über das Problem verraten. (Wurde die Funktion nicht gefunden, oder hat sie nicht das gewünschte Ergebnis geliefert?) 
Probier mal das Beispiel unten aus!
Function Tsd(i As Variant)
Tsd = Format(i, „###,##“)
End Function
Sub so_gehts()
Dim i As Variant
i = 1000
i = Tsd(i)
MsgBox (i)
End Sub
Danke und Gruß
Bitteschön.
MfG
Stephan
             
            
              
              
              
            
            
           
          
            
            
              Hallo Reinhard u. Stephan
hier liegt mein Fehler:
Tsd = Format(i, „###,##“)
muss richtig lauten:frowning:i, „###,##0.00“),
denn ich wollte ein Währungsformat mit Nachkommastellen, was ich Euch unterschlagen hatte.
Gruß und Dank
Wilhelm