in vba funktioniert das aber nicht. dazu sind vermutlich andere befehle notwendig?
In deinem Eingangspost war nicht die Rede von VBA, da ging es nur um eine Formel.
Falls du eine VBA-Lösung brauchst, kannst du aber einfach diese Formel per VBA in der jeweiligen Zelle setzen (Range.Formula-Eigenschaft).
Beachte, dass Range.Formula die englische Schreibweise der Formel benötigt (kann man sich VBA umwandeln lassen):
Range("C2:C4").Formula = "=ROUND(DATEDIF($A2,$B2,""ym"")+(DATEDIF($A2,$B2,""md"")+1)/DAY(EOMONTH($A2,0)),1)"
Eine Alternative stellt Range.FormulaLocal dar - diese richtet sich nach der Windows Systemeinstellung und würde bei Einstellung auf Deutsch auch den deutschen Formelausdruck verstehen.
Die Verwendung der Eigenschaft Range.FormulaLocal ist jedoch nicht zu empfehlen, wenn mehrere Personen die Datei nutzen, da nicht garantiert werden kann das jede dieser Personen seine Systemeinstellung auf Deutsch eingestellt hat; verrückter wird es noch, wenn man ihnen erklären muss, dass sie dies tun müssen um die Datei nutzen zu können. (Aus diesen und weiteren Gründen gehört dies Verfahrenweise allgemein zur schlechten Praxis).
Grüße
|