1.7k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Problemlöser,

ich bin mit meinen bescheidenen Kenntnissen am Ende und hoffe, Ihr könnt mir helfen.
Ich habe zwei Probleme:
1. Ich möchte innerhalb eines Makros meine Berechnung mit Hilfe von Variablen durchführen.
Dazu soll zunächst für die Zelle E220 ein Namen vergeben werden. Anschließend soll mit diesem Namen die Zelle AE 221 berechnet werden.
Die aufgezeichnete Befehlsfolge dazu lautet:
ActiveWorkbook.Names.Add Name:="Preis", RefersToR1C1:="=Nachvollzug!R220C5"
Range("AE221").Select
ActiveCell.FormulaR1C1 = "=ROUND(Preis*RC[1]/100,2)"

Soweit, so gut. Wenn ich jetzt diese Zeilen in mein Makro einfüge, erhalte ich als Ergebnis #NAME?
Mit "Einfügen/Namen/Definieren" kann ich sehen, dass für die Zelle der Name "Preis" vergeben wurde. Er erscheint aber nicht in der Bearbeitungszeile links oben, wie es bei der direkten Vergabe der Fall wäre. Liegt es an der Befehlszeile?

2. Problem:
Die Vergabe des Namens soll sich auf eine variable Zelle beziehen. z.B. auf Cells(z,s) wobei z=Zeile,s=Spalte ist. Wie muss dann der Befehl lauten?

Wer kann einem Lehrling dabei helfen?

Herzlichen Dank im Voraus

Euer

ABC

4 Antworten

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

versuch es mal so:

Sub BereichBenennen()
ActiveWorkbook.Names.Add "Preis", _
"=" & Worksheets("Nachvollzug").Cells(7, 2).CurrentRegion.Address
End Sub


Gruß

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

schon mal meinen Dank für die schnelle Antwort.

Die Idee ist ja nicht schlecht, aber ich möchte keinen Bereich sondern für eine einzelne Zelle (Cells(7,5) einen Namen vergeben und dann in einer zuvor gesuchten Zelle mit diesem Wert rechen.

Hast Du dafür vielleicht auch eine Lösung?

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

in meinem Beispiel wird nur die Zelle B7 = cells(7,2) mit dem Namen "Preis" benannt.
Ändere das Beispiel in cells(7,5) und das Makro tut das, was du willst.

Die Überschrift des Makros kannst du natürlich nach deinen Wünschen umbenennen. :-)

Gruß

M.O.
0 Punkte
Beantwortet von
Hi M.O.

in Deinem Beispiel hattest Du sicher keine Folgezeilen, denn wenn die Zeile einzeln steht, funktioniert es auch bei mir.

Aber der Tipp war trotzdem gut. Ich habe die Anweisung jetzt wie folgt geändert :

ActiveWorkbook.Names.Add "Preis", Cells(7, 5)

und es funktioniert wie gewünscht.

Dank meinerseits für die Anregungen :-)

Gruß

ABC
...