So einfach geht es nicht...
26.12.2003 13:43:03
Ramses
Hallo
du musst schon die Konventionen die EXCEL erwartet einhalten, und dazu gehört leider auch mal, dass die zu übergebenden Zahlen keine Kommas enthalten dürfen wenn mit Ihnen in VBA gerechnet werden soll. VBA versteht nun nur mal Punkt als Dezimaltrennzeichen und verwendet Kommas als Trennzeichen für einzelne Parameter.
Ob du willst oder nicht,... daran führt kein Weg vorbei.
Zusätzlich kommt es noch darauf an, woher deine Variablen die Werte erhalten. Aus Zellen, Inputboxen oder Textboxen in Userforms. Jede hat seine speziellen Eigenheiten die man berücksichtigen muss.
Hier eine Variante wie man Fehler abfangen kann
Option Explicit
Sub Testproc(Optional Einkaufspreis As Variant, Optional Verkaufspreis As Variant)
If Not IsMissing(Einkaufspreis) And Not IsMissing(Verkaufspreis) Then
Debug.Print Einkaufspreis
Debug.Print Verkaufspreis
Debug.Print "Gewinn:", Verkaufspreis - Einkaufspreis
Exit Sub
End If
MsgBox "Ein Parameter wurde nicht angegeben"
End Sub
IsMissing funktioniert aber nur, wenn der optionale Parameter als "Variant" übergeben wurde.
Diese Variante funktioniert nicht
Option Explicit
Sub Testproc(Optional Einkaufspreis As Double, Optional Verkaufspreis As Double)
If Not IsMissing(Einkaufspreis) And Not IsMissing(Verkaufspreis) Then
Debug.Print Einkaufspreis
Debug.Print Verkaufspreis
Debug.Print "Gewinn:", Verkaufspreis - Einkaufspreis
Exit Sub
End If
MsgBox "Ein Parameter wurde nicht angegeben"
End Sub
Gruss Rainer