Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1876to1880
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA FormulaR1C1 Wert ausgeben

VBA FormulaR1C1 Wert ausgeben
09.04.2022 17:19:19
SuMMi
Hallo,
ich habe mir versucht VBA per Makrorekorder und Google selbst bei zu bringen.
Das bis jetzt auch gut geklappt.
Jetzt habe ich noch eine letzte Mission und an der beiße ich mir die Zähne aus.
Ich möchte mir per Makro folgenden Hyperlink in die Arbeitsmappe einfügen:

Selection.FormulaR1C1 = _
"=HYPERLINK(""mailto:" & Cells(1, 2).Value & "?Subject=Mein Text ""&LEFT(RC9,FIND("":"",RC[-6])-1) & "" mein Text""&RC4 &"" mein Text "" &TEXT(RC6,""TT.MM"") & "" meint Text"",""meint Text"")"


Dieser Funktioniert auch, aber im zweiten Schritt muss ich den letzten Abschnitt durch ,""meint Text"")" einen Zellinhalt ersetzen
Diese wollte ich so lösen (Spalte O)

Selection.FormulaR1C1 = _
"=HYPERLINK(""mailto:" & Range("B1").Value & "?Subject=Meint Text ""&LEFT(RC9,FIND("":"",RC[-6])-1) & "" mein Text""&RC4 &"" Meint Text "" &TEXT(RC6,""TT.MM"") & "" Mein Text"",Cells(2,2).Value)"

Er fügt sie mir zwar ein, aber beim Cells(2,2).Value erhalte ich anstatt den Zellinhalt @Cells(2;2).Value)
Was macht die Formel ?Sie bezieht sich aus Zelle B1 die Emailadresse, danach Kommt mein Text (Left+find= text au Zelle abschneiden bei :, bei RC4 werden Zahlen eingefügt und bei RC6 ein Datum.
Was muss ich anpassen damit er mir nicht Cells(2;2).Value) sondern den Zellinhalt angibt?
Ich habe inzwischen unzähliges versucht, aber ich drehe mich im Kreis.


		

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA FormulaR1C1 Wert ausgeben
09.04.2022 19:00:22
Oberschlumpf
hmm?
Als du in der Vorschau warst - vor dem Absenden - hattest du nich auch gedacht: "Oha! Wie doof und unübersichtlich sieht DAS denn jetzt aus?"
Unabhängig davon:
Zeig uns doch bitte, anstelle von nur n bisschen Code, per Upload eine Bsp-Datei mit allem, was nötig ist, um a) dein Problem zu verstehen, und b) vielleicht dir helfen zu können.
Ciao
Thorsten
AW: VBA FormulaR1C1 Wert ausgeben
10.04.2022 02:17:52
Oberschlumpf
Hi,
hier die Lösung:
https://www.herber.de/bbs/user/152376.xlsm
Erklärungen findest du als Kommentare im Code.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: VBA FormulaR1C1 Wert ausgeben
10.04.2022 09:09:34
SuMMi
leider nein.
Auf Add Anchor bin ich auf schon gestoßen,aber hier würde er mir den Zellinhalt aus Ort etc. direkt in den Betreff eintragen. Dann müsste ich aber vor jeden versenden das Makro starten, wenn ich mit der Formel arbeite macht er das automatisch. Also wäre Add Anchor wieder ein Mehraufwand für die Anwender, weil es bei jedem Zelleintrag angewandt werden muss. (Außer das mit den Zellbezug z.b. R[2]C[2] funktioniert, das habe ich noch nicht getestet)
Ich brauche dieses Makro nur wenn sich die Emailadresse bzw, der "Freundliche Name" ändert.
Auf die Idee mir R[2]C[2] bin auch schon gekommen.
Leider werden Inhalte aus dieser Tabelle teils in anderen Dateien kopiert, aber diese haben ja nicht den Zellbezug aus B2.
Er muss es wie bei der Mailadresse schaffen,weil dort bezieht er sich nicht nur den Zellhinhalt B1,sondern trägt ihn direkt ein.
Deswegen brauche ich den Inhalt und nicht den Bezug.
Grüße
Anzeige
AW: VBA FormulaR1C1 Wert ausgeben
10.04.2022 09:19:36
Oberschlumpf
ääähhhh?
Starte NOCH MAL meine letzte Datei = mein letzter Beitrag vom 10.04.2022 um 02:17:52 !!!
In der Datei steht doch gar nix von Anchor!
Das Makro mit "geht-jetzt-doch-Code!" heißt noch immer funktioniert_nicht
Also, Makro starten, hier her zurückkommen, und Feedback von dir erwünscht...
AW: VBA FormulaR1C1 Wert ausgeben
10.04.2022 10:02:39
SuMMi
Ich habe mir deine komplette Datei angeschaut und bei Makro 1 +2 hast du mit Hyperlink.Add Anchor gearbeitet
Aber kommen wir zu deinem verfeinerten Code
Dieser funktioniert zwar in dieser Datei, weil er den angezeigten Namen des Hyperlinks aus Zelle $B$2 bezieht.
Diesen Bezug gibt es aber nur in meiner Tabelle. Sobald jemand die Daten in einer andere Tabelle kopiert wird als Name 0 angezeigt weil bei ihm die Zelle B2 leer ist.
Deswegen brauch ich nicht den Bezug auf den Inhalt auf Zelle B2, sondern den Inhalt aus Zelle B2 direkt in der Formel.
Bei der E-Mailadresse habe ich das mit Range("B1").Value ( es geht auch Cells(1,2).Value geht auch gelöst, aber hinten bekomme ich das nicht hin, weil ich vermutlich die " falsch setzte ?!
Anzeige
AW: VBA FormulaR1C1 Wert ausgeben
10.04.2022 10:36:48
Oberschlumpf
Hi,
vergiss einfach Modul2 mit Makro1 + 2!
Das waren nur Tests - ich hab diese Makros nur nich gelöscht.
Es geht einzig + allein um das Makro mit dem Namen "funktioniert_nicht" in Modul1.
Und da hab ich genau das getan, was du - laut deinen Beschreibungen - gewollt hast.
Anstelle von Cells(2,2) (was AUCH NUR den Wert aus Zelle B2 zurückgibt) muss man hier R2C2 verwenden, was eben genau so auch nur den Wert aus Zelle B2 zurückgibt - und nix anderes.
Und mit Range("B1").Value = Mailadresse aus Zelle B1 machst du doch nix anderes! Auch hier müsste bei jedem Anderen, der dein Makro benutzt - in Zelle B1! - die Mailadresse drinstehen!
Ach ja, die Verwendung von Range("B1").Value funktioniert deswegen, weil sich Range("B1").Value in der "Code-Verknüpfung" mit den anderen Textteilen wie z Bsp "mailto:" usw befindet.
DAS kann ich leider nicht besser erklären - aber stimmt, es ist verwirrend, dass zu Beginn die Verwendung Range("B1").Value oder Cells(1,2).Value funktioniert, aber am Ende eben wieder die RC-Schreibweise verwendet werden muss.
So, da ich - eigentlich - dein Problem nach deinen Beschreibungen gelöst habe....du aber trotzdem nich zufrieden bist, lass ich den Thread weiter "offen".
Ich weiß leider nicht, was du erreichen willst....
Wenn bei anderen nich in Zelle B2 - WO GENAU kommt denn der "freundliche Text" für Spalte N dann her?
In deiner Bsp-Datei bist du mit Daten ja doch eher sparsam.
Vielleicht zeigste ne neue Bsp-Datei mit - mehr - Daten, und diese an den richtigen Stellen....oder wie auch immer.
Ciao
Thorsten
Anzeige
kleine Korrektur
10.04.2022 10:46:19
Oberschlumpf
sorry, ich meinte Spalte O, nicht Spalte N!
AW: kleine Korrektur
10.04.2022 17:42:05
SuMMi
Hallo Thorsten,
erstmal vielen Dank für deine Unterstützung, dafür bin ich dir sehr dankbar.
Der Freundliche Name ist das was in Spalte O angezeigt wird. Also ist es der Zellinhalt aus B2
also gelöst ist es noch nicht, da mir in als Freundlicher Name der Zellbezug und nicht der Zellinhalt in die Formel geschrieben wird.
Makro: Sheets("Test").Range("O7:O144").FormulaR1C1 = _
"=HYPERLINK(""mailto:" & Range("B1").Value & "?Subject=Der Kurs ""&LEFT(RC9,FIND("":"",RC[-6])-1) &"" am "" &TEXT(RC6,""TT.MM"") & "" muss abgesagt werden"",R2C2)"
Ausgabe(ist): =HYPERLINK("mailto:Mail@test.de?Subject=Der Kurs "&LINKS($I7;FINDEN(":";I7)-1) &" am " &TEXT($F7;"TT.MM") & " muss abgesagt werden";$B$2)
Ausgabe(soll):=HYPERLINK("mailto:Mail@test.de?Subject=Der Kurs "&LINKS($I7;FINDEN(":";I7)-1) &" am " &TEXT($F7;"TT.MM") & " muss abgesagt werden";"ich hoffe es klappt") Das ich hoffe es klappt wird aber nicht in das Makro geschrieben, sondern das Makro schreibt es als Inhalt von B2 direkt in die Formel
Die anderen Spalten in der Datei sind leer weil sich dort kein Bezug im Hyperlink stattfindet.
Anzeige
AW: kleine Korrektur
10.04.2022 18:09:31
Oberschlumpf
Hi ?,
Ausgabe(ist): =
"=HYPERLINK(""..."",R2C2)" willst du nicht, obwohl du selbst es vorher erfolglos mit "=HYPERLINK(""..."";Cells(2,2))" versucht hattest,
wobei R2C2 nix anderes ist als Cells(2,2); nur eben ne andere Schreibweise - hier die notwendige Schreibweise
und...
Ausgabe(soll) hast du doch schon im Makro "funktioniert_brauch_ich_aber_nicht" =
"=HYPERLINK(""..."",""das klappt immer"")" - du müsstest ""das klappt immer"" nur gegen ""ich hoffe es klappt"" , bzw den Text, der wirklich erscheinen soll, austauschen
Sorry, ich weiß nicht, was du willst...hab keine Idee mehr....wer anderes bitte!
Ciao
Thorsten
Anzeige
AW: kleine Korrektur
10.04.2022 18:17:34
SuMMi
Wenn ich das mit Cells(2,2)
machen spukt er mir diese Formel aus, und diese ist nicht funktionsfähig
=HYPERLINK("mailto:Mail@test.de?Subject=Der Kurs "&LINKS($I7;FINDEN(":";I7)-1) &" am " &TEXT($F7; "TT.MM") & " muss abgesagt werden";@Cells(2;2))
AW: kleine Korrektur
10.04.2022 18:29:19
Oberschlumpf
welchen Teil von...
"der Code funktioniert nur mit "=HYPERLINK(""..."",R2C2)" und nicht!!! mit "=HYPERLINK(""..."",Cells(2,2))" oder...jetzt ganz neu...mit "=HYPERLINK(""..."",@Cells(2,2))"
...hast du nicht verstanden?
und:
würde Cells(2,2) funktionieren, dann könnte vielleicht in der Formel genau der Text, nicht der Zellbezug drin stehen - ABER AUCH MIT CELLS(2,2) WÜRDE IMMER DER INHALT AUS ZELLE B2 ZURÜCKGEGEBEN WERDEN!
wenn bei wem anders in B2 nix drin steht, würde auch bei Verwendung von CELLS(2,2) ein "" oder gar nix als Text in der Formel stehen
Anzeige
AW: kleine Korrektur
10.04.2022 19:07:03
SuMMi
Doch das habe ich verstanden.
Bei R2C2 gibt er wenn die Zelle B2 leer ist die Zahl 0 aus, weil die leere Zelle den Wert 0 hat.
Das habe ich schon ausprobiert.
Ich denke ich werde mir eine neue Lösung überlegen müssen.
Nochmals danke für deinen Einsatz.
Falls ich eine Lösung finde melde ich mich ;)
AW: kleine Korrektur
10.04.2022 19:16:07
Oberschlumpf
Bei R2C2 gibt er wenn die Zelle B2 leer ist die Zahl 0 aus
Ja, das wäre ja auch korrekt so - und das Gleiche würde bei Verwendung von Cells(2,2) passieren (entweder 0, aber wahrscheinlicher "" als Rückgabe) - und DAS würdest du ja auch nich wollen
und...ich fragte dich viele Beiträge vorher: "wenn nicht in B2, wo steht bei anderen denn dann der Text für "freundlicher Name" für Spalte O?"
haste bis jetzt ...nicht beantwortet
und jetzt noch mal, anders formuliert: Wenn in B2 nix drin steht, wie soll dann - die Zelle gefunden werden - in der DER Text steht, der in Spalte O als "freundlicher Name" erscheinen soll?
auch diese Frage ist nicht rhetorisch...
Anzeige
AW: kleine Korrektur
10.04.2022 19:19:10
SuMMi
Jede Zeile in der Spalte O hat den Freundlichen Namen aus der Zelle B2
AW: kleine Korrektur
10.04.2022 19:28:34
Oberschlumpf
aber DANN ist meine Lösung mit R2C2 doch richtig!
Text IMMER aus B2 !!!!
es is doch egal, ob in der Spalte eine Formel mit "=Hyperlink(...,$B$2)" oder "=Hyperlink(...,"Text")" steht
$B$2 verweist IMMER auf Zelle B2, egal, in welcher ZEILE in Spalte O meine richtige! Formel steht
die $-Zeichen bilden einen fixen Bezug; in Zeile 8 steht also NICHT "=Hyperlink(...,$B$3)", weil in Zeile 7 "=Hyperlink(...,$B$2)" steht - in jeder Zeile steht $B$2
hast du DAS eigtl schon bemerkt?
und wieso kommst du dann mit "und wenn aber wer anders den Text nich in B2 hat", wenn der Text doch IMMER aus B2 kommt?
Anzeige
AW: kleine Korrektur
10.04.2022 19:48:43
SuMMi
Klar, das habe ich kapiert.
Diese Datei soll an verschiedene Standorte verteilt werden, dieser Standort ist in B2 versteckt.
Meine Daten werden ab Zeile 7 von Spalte b bis r kopiert in eine Gesamtexcel kopiert.(die fast identisch ist)
Da in der Gesamtdatei die Zelle B2 leer ist würde bei jeder kopierten Zeile O der Name 0 stehen.
Da Standorte sich ändern können,aber das bearbeitenden Personal, aber gleich bleibt wandert die Datei zum neuen Standort. Deswegen möchte ich diesen in B2 versteckt. Weil wenn ich den Standort als Name in das Makro eintrage müsste ich beim Standortwechsel das Makro anpassen.
Ich will aber einen Makro das mir den Inhalt aus B2 in die Formel einträgt, weil in der Gesamtdatei die Zelle B2 leer ist.
Ist die Erklärung diesmal besser?
wer anders bitte - ich weiß keine Lösung
10.04.2022 20:20:40
Oberschlumpf
Ich will aber einen Makro das mir den Inhalt aus B2 in die Formel einträgt, weil in der Gesamtdatei die Zelle B2 leer ist.
Ist die Erklärung diesmal besser?
definitiv NEIN "ich will Wert aus B2, weil Wert in B2 leer ist"
sorry, jetzt bin ich wirklich raus...und dir bleibt wohl nix anderes, als nach nem neuen, anderen Ansatz zu suchen.
Ich versteh jetzt noch weniger als vorher schon...
DU bestehst darauf, dass richtig ist, was DU beschreibst
Ich bestehe darauf, dass richtig ist, was ICH beschreibe
...einer von uns beiden irrt sich...
Lösung: VBA Formula R1C1 als Wert ausgeben
16.05.2022 07:30:52
SuMMi
Nachdem ich das Thema etwas ruhen ließ habe ich nun die Lösung gefunden.
"=HYPERLINK(""mailto:" & Cells(1, 2).Value & "?Subject=Der Kurs ""&LEFT(RC9,FIND("":"",RC[-6])-1) &"" am "" &TEXT(RC6,""TT.MM"") & "" muss abgesagt werden"",""" & Cells(2, 2).Value & """)"
Damit ich den Zellinhalt direkt als "freundlichen Namen" angezeigt bekomme muss ich ihn wie folgt angeben:
""" & Cells(2, 2).Value & """
Ich benötige 3 Anführungszeichen und alles mit & wie man sieht.
Meine Theorie:
2 Anführungszeichen für den Text + ein weiteres Anführungszeichen damit der Text als String ausgegeben werden kann.

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige