String falsch ausgelesen - Fehler

Hallo zusammen,

kann mir wer sagen, warum folgende Formel nicht funktioniert?

Public Function MontageNeu(Betrag As Single) As Single
Dim Serie As String
Serie = Range(A1).ValueIf Serie = "Serie 1" Then
    MontageNeu = Betrag \* 5
Else
MontageNeu = Betrag
End If
End Function

Es kommt immer #Wert...irgendwie hackt es an dem String "Serie 1"...in A1 habe ich eine Gültigkeitsfeld mit verschiedenen Serien die ausgewählt werden können. Aber irgendwie funktioniert es nicht, auch wenn ich Serie 1 per Hand reinschreibe. Kann mir wer sagen wo der Fehler da liegt?

Sorry für den langen Satz…

Jetzt hab ich es mal mit Cells anstatt Range versucht und es klappt sofort…wieso das?

Tut sich gleich eine andere Frage auf:

Wie kann ich die Formel aktualisieren lassen, wenn man in dem Gültigkeitsfeld etwas anderes auswählt?

Danke schonmal!

MfG

Hallo Brille,

das A1 in der Range-Klammer gehört in Anführungszeichen.

Gruß, Andreas

das A1 in der Range-Klammer gehört in Anführungszeichen.

Oh mann, also manchmal…Danke!

MfG

Grüezi Brille

Wie kann ich die Formel aktualisieren lassen, wenn man in dem
Gültigkeitsfeld etwas anderes auswählt?

Du musst alle Bereiche mit denen in der Funktion gerechnet wird, als Parameter übergeben und nicht unreferenziert von innerhalb aufrufen:

Public Function MontageNeu(Betrag As Single, rngSerie As Range) As Single
Dim Serie As String
 If rngSerie.Value = "Serie 1" Then
 MontageNeu = Betrag \* 5
 Else
 MontageNeu = Betrag
 End If
End Function

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Danke Thomas,

werd ich so mal ausprobieren!

MfG