1.5k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Zusammen,

ich bräuchte mal eure Hilfe.
Also, ich möchte eine Zelle per Makro mit einer Formel befüllen.
Diese Formel enthält einen Zellbezug, den ich über eine Variable verändern möchte.
Mein bisheriger Ansatz:

zielspalte = Sheets("Tabelle1").Cells(18, 25)
Cells(4, ziel).Select (unwichtig)
ActiveCell.FormulaR1C1 = "=Tabelle2!R[7]C[54]"

Nun wollte ich, da die Zeile konstant ist, nur die Spalte mit der Variable "zielspalte" verknüpfen. Leider weiß ich nicht wie und alle meine Versuche scheiterten kläglich...

Vielen Dank für euer Feedback
Grüße
Paul

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Paul,

versuch es mal so:

ziel = Sheets("Tabelle1").Cells(1, 1)
Sheets("Tabelle1").Cells(4, ziel).FormulaR1C1 = "=Tabelle2!R[7]C[54]"


Achte auf die Variablen: du liest "zielspalte" ein und benutzt im folgenden Ausdruck "ziel"

Ich hoffe das ist das, was du wolltest.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.,

ich glaube, ich hab meinen ersten Post etwas verwirrend dargestellt. Erstmal Danke für deine Antwort. Leider hat es mein Problem nicht ganz gelöst. Ich versuchs nochmal.

Also,
zielspalte = Sheets("Tabelle1").Cells(18, 25)
in dieser zelle wird der numerische Wert der Zielspalte ausgegeben. Dies funktionieret soweit.

Cells(4, ziel).Select
Hier wirdn die Zielzelle ausgewählt. Die Variable "ziel" ist auch korrekt. Ich habe sie in diesem Zusammenhang nur nciht näher beschrieben. Also "ziel" ungleich "zielspalte".

ActiveCell.FormulaR1C1 = "=Tabelle2!R[7]C[54]"
Dies ist die Formel, die in der Zielzelle (also bei (4, ziel)) stehe soll, wobei die "Row 7" als konstant angesehen werden soll und nur die "Column 54" veränderbar die die Variable "zielspalte" sein soll.

Ich dachte an sowas wie
ActiveCell.FormulaR1C1 = "=Tabelle2!R[7]C[zielspalte]"
Leider funktioniert das nciht so einfach.

Ich hoffe ich konnte mein Problem deutlich darstellen.
Sorry an dieser Stelle, für meine Verwirrtheit im ersten Post.
An dieser Stelle schon mal Danke.

Grüße
Paul
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Paul,

jetzt ist es klar, was du willst.
So gehts:

ActiveCell.FormulaR1C1 = "=Tabelle2!R[7]C"&zielspalte


Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.

Danke für deine rasche Antwort.
Dein Ansatz finde ich sehr gut. Habs mittlerweile auch hinbekommen und sogar ohne diese Row und Column Geschichte, bei der man immer soviel rechnen muss.

Ich denke unsere Lösungen ähneln sich sehr ;-)

Hier meine Lösung:

Sheets("Tabelle1").Cells(5, ziel).Value = "='Tabelle 2'!" & zielspalte & "12"

Ist vielleicht nicht die eleganteste Lösung, aber es tut!

In diesem Sinne
Viele Grüße und vielen Dank
Paul
...