Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1168to1172
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

Namen per VBA mit Formeln füllen

Namen per VBA mit Formeln füllen
Toibaman
Hallo zusammen ich habe folgendes Problem:
Ich versuche in einem Excel-spreadsheet mehrere Bereiche mit Namen zu versehen. Diese sollen dynamisch gehalten sein, weshalb ich mit bereich.verschieben arbeiten möchte. Nun muss ich insgesamt 200 namen vergeben und deshalb wollte ich da ein kleines Makro bauen. Mein Plan war, dass ich in einer spalte die Formel als String aufbaue und dann per Makro auslese und so den Namen zu erstellen. Derzeit sieht mein Makro so aus:
Sub Create_Names()
Dim Formul_1 As String
Dim Nam_12 As String
ActiveSheet.Select
Range("a2").Select
Do While ActiveCell  ""
Nam_12 = ActiveCell.Value
Formul_1 = ActiveCell.Offset(0, 5).Value
ActiveWorkbook.Names.Add Name:=Nam_12, RefersTo:=Formul_1
ActiveCell.Offset(1, 0).Select
Loop
MsgBox ("Name Creation Succsessfull! Have A nice Day!")
End Sub

Bei RefersTo:= hängt sich das Programm jedesmal auf, wenn ich die auszulesende Formel mit "=" in der Zelle stehen habe. Lasse ich das "=" in der Zelle weg, schreibt er beim Namen als Bereich die Formel nur in Anführungszeichen und der Zellenbezug funktioniert nicht.
Viele Grüße
Toibaman
AW: Namen per VBA mit Formeln füllen
10.08.2010 16:40:31
Henrik
Hallo Toibaman,
irgendwie weiß ich nicht genau, was du möchtest.
Versuch mal so etwas

Nam_12 = ActiveCell.Value
Formul_1 = ActiveSheet.Name & "!" & ActiveCell.Offset(0, 4).Address
ActiveWorkbook.Names.Add Name:=Nam_12, RefersTo:=CStr("=" & Formul_1)

Mögliche Aufhängung bei den Namen:
- Name enthält Leerzeichen, Punkte, etc.
- Name ist nur Zahl
Gruß Henrik
AW: Namen per VBA mit Formeln füllen
10.08.2010 16:50:15
Toibaman
Hm also vielleicht hab ich mich nicht so klar ausgedrückt. Also in einer Spalte in einem Tabellenblatt stehen die zu benutzenden Namen und in ein paar spalten weiter rechts habe ich die bereich.verschieben Formel mit der & funktion zusammengebastelt. Diese Formel sollte dann beim jeweiligen Namen in der "bezieht sich auf" box stehen. Das funktioniert auch solange, wie ich kein "=" in den formelstring mit auf nehme. Allerdings setzt Excel dann den Bezug in Anführungszeichen und der Bezug funktioniert nicht wie gewollt. Beziehe ich das "=" in den String mit ein gibt es eine Fehlermeldung (laufzeitfehler 1004).
Jetzt wollte ich wissen wie ich die formel aus der Zelle korrekt in den Namensbezug bekomme.
Anzeige
? o.o Frage noch offen!
10.08.2010 17:14:14
Henrik
Hallo,
ich bin raus. War wohl ein Kaffee zuviel. Sry
AW: ? o.o Frage noch offen!
10.08.2010 17:22:32
Toibaman
Nur mal als Beispiel in der Zelle F2 steht jetzt dann:
=bereich.verschieben(Data_Source_last_m_rep_date!$A$2;;;anzahl2(Data_Source_last_m_rep_date!$A:$A)-1; 1) 
In Zelle A2 steht der Name: CUT_OFF_DATE_OLD
Zelle a2 ist active cell.
der Name wird erstellt mit dem Wert aus Zelle A2 --> funktioniert
Bezug für den erstellten Namen soll die Formel aus Zelle F2 sein. --> funktioniert nicht.
Wenn ich das = Zeichen stehen lasse Fehlermeldung sonst steht im Namensbezug die Formel in "" un funktioniert nicht.
Eventuell versteht man es ja jetzt. Vielleicht hatte ich heut auch einen Kaffe zu wenig.
Anzeige
in english please oT
10.08.2010 17:36:07
ingoG
;-)
vielleicht so?
10.08.2010 17:48:15
ingoG
Hallo nochmal,
versuchs mal mit der Formel
'=OFFSET(Data_Source_last_m_rep_date!$a$2,,,countA(Data_Source_last_m_rep_date!$A:$A)-1,1)
Gruß Ingo
PS eine Rückmeldung wäre nett...
AW: Namen per VBA mit Formeln füllen
10.08.2010 17:35:03
ingoG
Hallo ,
hab einfach mal ein Macro aufgezeichnet und angepasst:
Sub Makro1()
ActiveWorkbook.Names.Add Name:="xxx", RefersToR1C1:= _
Range("F2").Text
End Sub
mit F2 := '=OFFSET(Tabelle1!RC,1,1)
funktioniert bei mir...
Gruß Ingo
PS eine Rückmeldung wäre nett...
AW: Namen per VBA mit Formeln füllen
10.08.2010 17:52:27
Toibaman
Hallo Ingo,
hab es jetzt mal so probiert und bekomme leider immer noch den gleichen fehler
ActiveWorkbook.Names.Add Name:=Nam_12, RefersTo:=Range("F2").Text
so auch:
ActiveWorkbook.Names.Add Name:=Nam_12, RefersToR1C1:=Range("F2").Text
Viele Grüße
Toibaman
Anzeige
ActiveWorkbook.Names.Add Name:="Nam_12", RefersTo:
10.08.2010 18:23:42
Georg
owT
AW: ActiveWorkbook.Names.Add Name:="Nam_12", RefersTo:
11.08.2010 08:36:49
Toibaman
Hallo zusammen,
danke für die vielen antworten, auch wenn es bisher nicht geklappt hat. Habe eine weitere Seite gefunden bei der genau mein Problem beschrieben ist, jedoch vestehe ich hier die Antwort nicht. Vielleicht ist das ja hilfreich:
http://www.ms-news.net/f805/vba-fuer-namen-aus-zellinhalten-9167455.html
Grüße
Toibaman
AW: Namen per VBA mit Formeln füllen
11.08.2010 11:50:43
Toibaman
Hab es gelöst. Mit englischen Formeln und R1C1 Ansatz klappt es. Wenn das mit "English please" gemeint war hätte eine etwas ausführlichere Antwort vielleicht geholfen. Thanks anyway.
Toibaman
Anzeige
AW: Namen per VBA mit Formeln füllen
12.08.2010 17:12:34
ingoG
Hallo nochmal,
im Anhang zu meinem Kommentar hatte ich Dir Deine Formel auch übersetzt, ich dachte, das sei deutlich genug. my fault ...
Naja hauptsache es funzt jetzt
Gruß Ingo

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige