Thema Datum  Von Nutzer Rating
Antwort
21.12.2007 11:23:04 Oldschool
NotSolved
23.12.2007 09:17:43 Holger
NotSolved
Rot Aw:Aw:VBA Excel Namen für Formeln definieren mit M
10.01.2008 10:52:48 Oldschool
NotSolved
10.01.2008 13:25:45 Oldschool
NotSolved

Ansicht des Beitrags:
Von:
Oldschool
Datum:
10.01.2008 10:52:48
Views:
1096
Rating: Antwort:
  Ja
Thema:
Aw:Aw:VBA Excel Namen für Formeln definieren mit M
Vielen Dank schon mal für die Antwort. Ich versuche nochmal genauer zu werden.

Ich habe ein Workbook mit einem Diagramm und dann mehreren Datensheets.
Das Diagramm soll automatisch erweitert werden, wenn neue Daten in die einzelnen Sheets eingetragen werden. Ich hatte das so gelöst:

Neuen Namen definiert:
=BEREICH.VERSCHIEBEN(Datenblatt1!$E$1;1;0;ANZAHL2(Datenblatt1!$E:$E)-1)

Und dann für jedes Datenblatt so einen Namen definiert. Diese Namen konnte man dann im Diagramm als Datenquelle eintragen.
Das hat auch wunderbar funktioniert. Sobald neue Daten eingetragen wurden, wurde das Diagramm automatisch angepasst. Nun hab ich aber das Problem, dass ich hin und wieder neue Datenblätter hinzufügen muss. Da ich die Namen dann nicht alle manuell erstellen will, suche ich eine Lösung über VBA.
Das Makro soll zuerst einmal alle definierten Namen löschen. Soweit kein Problem. Beim automatischen Definieren treten dann allerdings Probleme auf.
Hier der Code den ich momentan verwende:


ActiveWorkbook.Names("dyn_X_Achse").Delete
[b]ActiveWorkbook.Names.Add Name:="dyn_X_Achse", RefersToR1C1:="=BEREICH.VERSCHIEBEN(" & Sheetname(1) & "!$A$1;1;0;ANZAHL2(" & Sheetname(1) & "!$A:$A)-1)"[/b]

For i = 1 To counter2
ActiveWorkbook.Names("dyn_Bereich_" & Mountpoint(i)).Delete
[b]ActiveWorkbook.Names.Add Name:="dyn_Bereich_" & Mountpoint(i), RefersToR1C1:="=BEREICH.VERSCHIEBEN(" & Sheetname(i) & "!$E$1;1;0;ANZAHL2(" & Sheetname(i) & "!$E:$E)-1)"[/b]
Next i


In dem Array Sheetname sind die Namen der einzelnen Blätter abgelegt.
In dem Array Mountpoint sind die Bezeichnungen einzelner Mountpoints abgelegt (MP1, MP2, usw)

Der erste Teil ist dazu da, um die X-Achse zu beschriften. Im zweiten Teil wird dann der tatsächliche Datenbereich benannt. Irgendwo in den fettgedruckten Teilen befindet sich ein Fehler in der Formel den ich einfach nicht finde. Wie gesagt, wenn ich das alles manuell in Excel eingebe, dann funktioniert es. Erst wenn ich per Makro und mit Arrays versuche diese Namen zu definieren spuckt er die Fehlermeldung aus, dass die Formel falsch wäre.



Holger schrieb am 23.12.2007 09:17:43:

Hallo Oldschool,
dein Code-Ausschnitt ist schwer nachzuvollziehen, zumals individuelle Namen enthalten sind. Die Bedeutung von "Bereich.Verschieben" und der durch Semikolon getrennten Parameter ist unklar.
Daher nur unscharfe Hinweise. Es würde mich aber interessieren, was dabei herauskommt.
Kann es sein, dass es "RefersTo" heißen muss, da du die Zellen nicht mit der R1C1-Schreibweise, sondern mit der A1-Schreibweise ansprichst? Muss der Name der Tabelle nicht mit Apostrophs versehen werden? Z.B. für den Bereich F14:H21 der Tebelle Blatt1: RefersToR1C1:= "='Blatt 1'!R14C6:R21C8".
Es würde mich freuen, wenn es klappen sollte, allerdings habe ich dieses Problem noch nie bearbeitet.
Frohes Fest
Holger



Oldschool schrieb am 21.12.2007 11:23:04:

Hallo,

Ich versuche mit einem Makro Namen für Formeln zu definieren. Das Array Sheetname enthält einen String. Wenn ich diesen String direkt eingebe ohne die Variable, dann funktioniert es. So allerdings sagt Excel mir, dass die Formel falsch ist und ich finde den Fehler einfach nicht.

ActiveWorkbook.Names.Add Name:="dyn_X_Achse", RefersToR1C1:="=BEREICH.VERSCHIEBEN(" & Sheetname(1) & "!$A$1;1;0;ANZAHL2(" & Sheetname(1) & "!$A:$A)-1)"

Vielleicht kann mir da jemand helfen?

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
21.12.2007 11:23:04 Oldschool
NotSolved
23.12.2007 09:17:43 Holger
NotSolved
Rot Aw:Aw:VBA Excel Namen für Formeln definieren mit M
10.01.2008 10:52:48 Oldschool
NotSolved
10.01.2008 13:25:45 Oldschool
NotSolved