Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Platzhalter durch Variablen ersetzen
#1
Hallo an alle Teilnehmer im  CEF,

in der nachfolgenden Formel will ich den Platzhalter "NAME, Vorname *xxxx; " durch Variablen ersetzen:
Anstatt NAME soll die Variable: FamName übernommen werden
Anstatt Vorname soll die Variable: Vorname übernommen werden
Anstatt xxxx; soll die Variable: Geb_Jahr übernommen werden

Range("F" & Zeile + 1).FormulaLocal = Replace("=""NAME, Vorname *xxxx; "" &(DATEDIF(A_;B_;""y""))& "" Jahre""", "_", Zeile + 1)

Ich habe bereits diverse Lösungsversuche unternommen, finde aber nicht die richtige Schreibweise.
Hat jemand in diesem Forum einen Lösungsvorschlag?

danke
wellington
Antworten Top
#2
Hi,

wenn ich dich richtig verstanden habe:
Range("F" & Zeile + 1).FormulaLocal = "=""" & FamName & ", " & Vorname & " *" & Geb_Jahr & """&(DATEDIF(A" & Zeile + 1 & ";B" & Zeile + 1 & ";""y""))&"" Jahre"""

Mit R1C1-Schreibweise wird es etwas einfacher:
Range("F" & Zeile + 1).FormulaLocalR1C1 = "=""" & FamName & ", " & Vorname & " *" & Geb_Jahr & """&(DATEDIF(C1;C2;""y""))&"" Jahre"""
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#3
Hallo Helmut,
danke für die schnelle Rückmeldung

diese Furmel funktioniert genau so wie ich es mir vorgestellt habe:
Range("F" & Zeile + 1).FormulaLocal = "=""" & FamName & ", " & Vorname & " *" & Geb_Jahr & """&(DATEDIF(A" & Zeile + 1 & ";B" & Zeile + 1 & ";""y""))&"" Jahre"""

Bei der Formel mit R1C1-Schreibweise erscheint die Fehlermeldung:
Laufzeitfehler 438:
Objekt unterstützt diese Eigenschaft oder Methode nicht

Mit der erstgenannten Formel bin ich vollkommen zufrieden

nochmals vielen Dank und noch einen schönen Sonntag

wellington
Antworten Top
#4
Hi,

da ich gerade am iPad sitze, kann ich schlecht nachschauen, welche Eigenschaften Range in Bezug auf Formeln unterstützt. Kann sein, dass es statt .FormulaLocalR1C1 .FormulaR1C1Local heißen muss.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#5
Hallo helmut,

deine Variante mit "R1C1" enthält feste Zellenangaben mit C1 und c2:
Range("F" & Zeile + 1).FormulaLocalR1C1 = "=""" & FamName & ", " & Vorname & " *" & Geb_Jahr & """&(DATEDIF(C1;C2;""y""))&"" Jahre"""

Ich benötige hingegen die Variante mit variabler Zellzuweisung wie in deinem ersten Vorschlag beschrieben:
Range("F" & Zeile + 1).FormulaLocal = "=""" & FamName & ", " & Vorname & " *" & Geb_Jahr & """&(DATEDIF(A" & Zeile + 1 & ";B" & Zeile + 1 & ";""y""))&"" Jahre"""

Genau so benötige ich die Formel

vielen Dank
wellington
Antworten Top
#6
Teste es doch einfach mal! Und wenn du dich wunderst, wieso es funktioniert, dann mach dich mal über die R1C1-Adressierung schlau…
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#7
sh.meine Mitteilung von:

25.06.2023, 14:26 
Hallo Helmut,
danke für die schnelle Rückmeldung

diese Formel funktioniert genau so wie ich es mir vorgestellt habe:
Range("F" & Zeile + 1).FormulaLocal = "=""" & FamName & ", " & Vorname & " *" & Geb_Jahr & """&(DATEDIF(A" & Zeile + 1 & ";B" & Zeile + 1 & ";""y""))&"" Jahre"""

Bei der Formel mit R1C1-Schreibweise erscheint die Fehlermeldung:
Laufzeitfehler 438:
Objekt unterstützt diese Eigenschaft oder Methode nicht

Mit der erstgenannten Formel bin ich vollkommen zufrieden

nochmals vielen Dank und noch einen schönen Sonntag

wellington
Antworten Top
#8
Dann bleib halt bei der komplizierteren Lösung.

Zum fett markierten Fehler habe ich doch was geschrieben. Und bevor ich einen sowieso komplizierteren String noch komplizierter mache, weil ich eine ungeeignete bzw. kompliziertere Adressierungsart verwende, würde ich die besser geeignete Adressierungsart verwenden.

Nur wer dazu lernt wird besser!
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#9
Moin!
Ungeprüft:
Es heißt FormulaR1C1Local
Das Local beißt sich dann natürlich mit C1
Statt  DATEDIF(C1;C2;""y"")
müsste es dann  DATEDIF(ZS1;ZS2;""y"") heißen.

Wie geschrieben, ist das nicht getestet.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#10
moin Ralf,

ich habe deinen Korrekturvorschlag eingesetzt und jetzt funktioniert auch die von Helmut vorgeschlagene "R1C1"-Lösung

Range("F" & Zeile + 1).FormulaR1C1Local = "=""" & FamName & ", " & Vorname & " *" & Geb_Jahr & """&(DATEDIF(ZS1;ZS2;""y""))&"" Jahre"""

In der Tabelle sieht das Ergebnis dann so aus:  MUSTER, Hans *199924 Jahre
noch eine abschließende Frage:
An welcher Stelle der Formel müsste ich ein Semikolon setzen damit es so aussieht: 1999; 24 Jahre

Danke für die korrigierte Formel, die ich nun auch nachvollziehen kann.

wellington
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste