Hallo liebe Schlaufüchse!
Ich bin ein Fan und mittlerweile schon ein Stammgast "beim Herber" und möchte meine erste Frage stellen.
Ausgangslage:
Grundsätzlich habe ich einen Druckbereich, der nach Rücksendung der Datei plötzlich als "__xlnm.Print_Area" aufscheint.
Dieser Druckbereich ist im Namensmanager als Indirekt-Formel auf eine Zelle definiert.
Mein Ansatz: defekten Druckbereich mittels Makro löschen und neu anlegen
Hintergrund zur Datei:
Excel mit 150 vorgefertigten Zeilen zum Ausfüllen und 26 Tabellenblättern.
Der korrekte Druckbereich je Tabellenblatt wird mittels Formel in Zelle A1 berechnet, Ergebnis ist zB $A$1:$G$100
Zur Info, die Formel in Zelle A1: ="$A$1:$G$"&(VERGLEICH(0;Tabelle1!C:C;-1)+1)
Dieser errechnete Druckbereich wird im Namensmanager als Druckbereich mit Formel =INDIREKT(Tabelle1!$A$1) angesteuert.
(korrekter Tabellenname = "1" bis "26")
Mein Versuch:
Sub INDIREKT_Druckbereich_korrigieren()
Dim ws As Worksheet
Dim i As Long
Dim nameRef
For i = 19 To 26 'Bezeichnungen der betroffenen Tabellenblätter von 1 bis 26
'gewünschte Indirekt-Formel im Druckbereich (Namensmanager):
'gewünschtes Ergebnis: =INDIREKT('1'!$A$1)
nameRef = "=INDIREKT('" & i & "'!$A$1)" & ""
' Tabellenblatt auswählen
Worksheets("" & i & "").Activate
Set ws = ActiveSheet
' Korrektur Namensmanager
With ws
.Names("__xlnm.Print_Area").Delete 'unbrauchbare Print_Area löschen
.Names.Add Name:="Druckbereich", _
RefersTo:=nameRef
.Names("Druckbereich").Comment = ""
End With
Next i
End Sub
Das Makro funktioniert grundsätzlich, aber aus der RefersTo wird scheinbar automatisch eine RefersToR1C1 gemacht.
Dann lautet die Formel nicht =INDIREKT('1'!$A$1) sondern =INDIREKT('1'!'Z1S1') und dadurch funktioniert die Indirekt-Formel im Namensmanager offensichtlich nicht.
Ich hoffe, mir kann jemand helfen.
lg Andy