Zellenname über Variable setzen

Hallo zusammen,
in einem bestimmten Sheet eines Excel Workbook möchte ich über ein Makro den Namen einer Zelle definieren. Da ich den selben Namen auch in anderen Sheets des Workbooks vergeben möchte habe ich folgenden Code gefunden:

ActiveWorkbook.Names.Add Name:="’" & ActiveSheet.Name & „’!rng_rabatt“, RefersToR1C1:="=’" & ActiveSheet.Name & „’!R5C9“

Bei diesem Code wird eine bestimmte Zelle eines Sheets mit dem Name „rng_rabatt“ versehen.

Nun möchte ich jedoch anstelle des festen Wertes „rng_rabatt“ den Wert einer Variablen verwenden. Etwa so:

Dim myvar as variant
myvar = „testwert“

ActiveWorkbook.Names.Add Name:="’" & ActiveSheet.Name & „'myvar“, RefersToR1C1:="=’" & ActiveSheet.Name & „’!R5C9“

Leider gibt es immer einen Fehler. Kann mir jemand helfen den Code korrekt abzubilden?

Vielen Dank im voraus
Peter

Hallo Peter,

ich würde das so ausprobieren:
Dim myvar as string
myvar = „testwert“

ActiveWorkbook.Names.Add Name:= ActiveSheet.Name &
myvar, RefersToR1C1:="=’" & ActiveSheet.Name & „’!R5C9“

mfg

Trampi

Hallo!

Du darfst deine variable nicht in „“ setzen.
So gehts:
ActiveWorkbook.Names.Add Name:="’" & ActiveSheet.Name & „’!“ & myvar, RefersToR1C1:="=’" & ActiveSheet.Name & „’!R5C9“

Gruß
Ralf

=======================

Hat funktioniert…Danke!!! und schönes WE

Versuch es mal mit einer „verkürzten“ Version:

ActiveWorkbook.Names.Add Name:=ActiveSheet.Name & myvar, \_
 RefersToR1C1:="='" & ActiveSheet.Name & "'!R2C2"

Hallo Peter,

Versuch´s mal damit:

Sub namevergeben()
Dim myvar As Variant
myvar = "testwert"
ActiveWorkbook.ActiveSheet.Names.Add Name:=myvar, RefersTo:=ActiveSheet.Cells(5, 9)
End Sub

Der Variablenname darf natürlich nicht in Anführungszeichen stehen.

Gruß
Arnold

Ich denke, so sollte es gehen:

ActiveWorkbook.Names.Add Name:=ActiveSheet.Name & myvar, RefersToR1C1:="=" & ActiveSheet.Name & „!R5C9“

Hallo,

Ich kann jetzt nicht ganz erkennen ob die Anzahl der " passen, aber eine variable wird nicht mit " übergeben.
Habe im Moment auch kein Excel zur verfügung um es nach stellen zu können.

Hallo zusammen,

Hallo palmenbaum,

möchte ich über ein Makro den Namen einer Zelle definieren. Da ich den selben
Namen auch in anderen Sheets des Workbooks vergeben möchte
habe ich folgenden Code gefunden:

ActiveWorkbook.Names.Add Name:="’" & ActiveSheet.Name &
„’!rng_rabatt“, RefersToR1C1:="=’" & ActiveSheet.Name &
„’!R5C9“

Bei diesem Code wird eine bestimmte Zelle eines Sheets mit
dem Name „rng_rabatt“ versehen.

Nun möchte ich jedoch anstelle des festen Wertes „rng_rabatt“
den Wert einer Variablen verwenden. Etwa so:

Dim myvar as variant

Ich würde myvar hier als String definieren.

myvar = „testwert“

Wenn Du die beiden Codes vergleichst, wirst Du feststellen, dass beim zweiten das Ausrufezeichen fehlt. Das würde ich mitsamt dem einfachen Anführungszeichen in den String packen. Also:
myvar = „’!testwert“

Dann lautet Dein geposteter Code so:

ActiveWorkbook.Names.Add Name:="’" & ActiveSheet.Name &
myvar, RefersToR1C1:="=’" & ActiveSheet.Name & „’!R5C9“

Leider gibt es immer einen Fehler. Kann mir jemand helfen den
Code korrekt abzubilden?

Vielen Dank im voraus
Peter

MfG MwieMichel

Ich meine, das hat eher die Ursache, daß Du ein Ausrufezeichen zwischen Arbeitsblattnamen und Zellreferenz im Arbeitsblatt machen mußt. Und außerdem mußt Du die Anführungszeichen um „myvar“ weglassen. Und außerdem würde es reichen, myvar als String zu definieren (Variant ist nur nötig, wenn man weiß, daß die zu definierende Variable im Lauf der Prozedur mit verschiedenen Datentypen gefüllt werden könnte.

Hallo Peter,

Nun möchte ich jedoch anstelle des festen Wertes „rng_rabatt“
den Wert einer Variablen verwenden. Etwa so:

Dim myvar as variant
myvar = „testwert“

ActiveWorkbook.Names.Add Name:="’" & ActiveSheet.Name &
„'myvar“, RefersToR1C1:="=’" & ActiveSheet.Name & „’!R5C9“

das ist die lösung deines problems

ActiveWorkbook.Names.Add Name:="'" & ActiveSheet.Name & "'!" & myvar, RefersToR1C1:="='" & ActiveSheet.Name & "'!R5C9"

gruß fred

Hallo
Es tut mir leid, aber mir fehlt in diesem Punkt Erfahrung. lg Symphony60

Hallo palmenbaum,

damit kenne ich mich nicht aus.

Gruß Hugo

Hallo palmenbaum,

Dein Variablen-Name muss mit & eingebunden und nicht in „“ gesetzt werden (s. u.):

Dim myvar as variant
myvar = „testwert“

ActiveWorkbook.Names.Add Name:="’" & ActiveSheet.Name &
„’“ & myvar, RefersToR1C1:= „=’“ & ActiveSheet.Name & „’!R5C9“

Gruß
Harry

Hallo,

was für einen Fehler gibt es denn? Ich wurde mahl mit dem Debugger prüfen welcher Wert der Variable zugeordnet wird.

Gruss

Hallo,
versuche es mal so:

Dim myvar As String
myvar = „Testwert“
ActiveWorkbook.Names.Add Name:=myvar, RefersToR1C1:="=Tabelle1!R1C3"

Gruß,
Ptonka