Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formel von definierten Bereichen in VBA ändern

Formel von definierten Bereichen in VBA ändern
29.06.2005 16:52:48
definierten
Hi,
Hoffe mir kann jemand weiterhelfen. Ich habe eine VBA Prozedur, welche ein neues Workbook erstellt, und dann Tabellenblaetter aus einem "Masterworkbook" in das neue Workbook kopiert. Dabei werden die von mir in dem Masterworkbook definierten Bereiche mitkopiert. Allerdings, sind diese Bereiche mit Formeln versehen (sie sind die Basis fuer dynamische Diagramme). Beim kopieren der Worksheets in die neue Workbook werden die Formeln so geändert, dass sie auf das Masterworkbook verweisen. So steht zum Beispiel statt
=BEREICH.VERSCHIEBEN('Data'!A1,...)
=BEREICH.VERSCHIEBEN('[Masterworkbook.xls]Data'!A1,...)
Nun moechte ich dass, die Formel so wie sie ursprünglich war erhalten bleibt, da ich ja das Tabellenblatt "Data" in das neue Workbook kopiert habe.
Ich koennte in VBA jeden einzelnen Bereich durch bereichspezifischen Code ändern, z.B.:
ActiveWorkbook.Names.Add Name:="Name1", RefersToR1C1:= _
"=OFFSET(Data!R1C3,Data!R1C1,0,6)"
Allerdings habe ich viele Bereiche und dies wäre daher ein ziemlicher Aufwand.
Gibt es dafür eine elegante Lösung?
Vielen Dank
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel von definierten Bereichen in VBA ändern
30.06.2005 10:57:20
definierten
Hallo Dan,
am einfachsten wäre es wohl, das Master-WB unter einem anderen Namen zu speichern und ggf. überflüssige Tabellen zu löschen. Du könntest auch mit
ActiveWorkbook.ChangeLink Name:="Mappe1.xls", NewName:="Mappe2.xls", Type:=xlExcelLinks
die Verknüpfung auf Deine neue Mappe setzen (Mappe1.xls und Mappe2.xls sind natürlich Beispiele)
Viele Grüße
Coach
Anzeige
AW: Formel von definierten Bereichen in VBA ändern
30.06.2005 16:18:02
definierten
Danke Coach,
Mittlerweile habe ich es geschafft das Problem auch auf eine andere Art zu loesen. Folgender Code generiert automatisch die Bereiche und ich werde dadurch STUNDEN an Zeit sparen. Ich habe fast geweint wie ich draufgekommen bin ;)
For Each r In Worksheets("Data").Range("A20:BZ20")
If IsEmpty(r) Then
Exit For
Else:
f = "=OFFSET(Data!R20C" & r.Column & ",Data!R13C8,0,6)"
Activeworkbook.Names.Add Name:=r.Text, RefersToR1C1:=f
End If
Next r
Eigentlich sehr einfach. f ist einfach die Formel und in Zellen A20 bis BZ20 stehen die Namen und darunter die Werte.
Hoffentlich wird sich dieser Code auch fuer andere Benutzer als nuetzlich erweisen :)
Gruesse,
Dan
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige