Ich hab den Fehler gefunden, aber ... Oh La La kommt mir über die Lippen!
Du hast mir den Anfang bereitet zum herum zu probieren. Hab Deinen Vorschlag eingebaut (nur die 3. Zeile davon - reicht ja) - und was passiert? Typ-Fehler bei "Set lnkRange". Und warum? Weil ich die "Print" - Zeile auskommentiert hatte! Denn als ich die reaktivierte, wurde das Programm erfolgreich abgeschlossen. Ahem... Ein "Print referedCell" scheint den Typfehler bei dem folgendem "Set lnkRange = pm.Range(referedCell)" auszumerzen...!?
Das Schärfste daran: Die Tabelle "Steuer", auf der die Zelle "Steuer!J12" sich befindet, existierte gar nicht im offenen PM-Dokument. *stöhn* - naja, egal. Im originalen Skript passierten all diese Ungereimtheiten nicht, also habe ich darin weiterprobiert mit Deiner Idee. Ich habe das Zusammenfügen von Blattname und Zelladresse in die Funktion verlegt, zunächst ohne Erfolg:
Code:
'Aufruf der Funktion:
subStr = FormatReference (shtName & cllName)
Function FormatReference (ByVal sheetName$, ByVal cellName$) As String
Dim referedCell$
Dim lnkRange As Object
referedCell = sheetName & cellName
Set lnkRange = pm.Range(referedCell) ' <--- PRODUZIERT IMMER NOCH DEN TYP-FEHLER
' Erst diese zwei Änderungen brachten die Lösung:
' sheetName = Left(sheetName, Len(sheetName)-1)
' Set lnkRange = pm.ActiveWorkbook.Sheets(sheetName).Range(cellName)
Set lnkRange = Nothing
End Function
Du hattest recht - es lag
irgendwie am "referedCell"

Also:
"pm.Range(Zellbereich$)" kann keine Angabe vom Arbeitsblatt in "Zellbereich$" verarbeiten. Es geht nur so:
"pm.ActiveWorkbook.Sheets(BlattName$).Range(Zellbereich$)", wobei in "Zellbereich$" kein Blattname stehen darf.Deine berechtigte Frage warum ich die Zelladresse aufteile hat spätestens jetzt eine Antwort bekommen

Im Ernst: Ich muss im Skript auch Zellbereiche verarbeiten. Z.B. für den Bereich "Steuer!J12:J25" muss ich "Steuer!" puffern, um die Funktion separat für "Steuer!J12" und "Steuer!J25" aufzurufen. Das Skript kopiert eine Formel in eine Nachbarzelle, wobei die Formel in ganzer Länge als Textformel erscheint. Die Verweise auf Zahlen darin bleiben erhalten, und die Zahlenformate werden in Text nachgebildet. Das verwende ich um für den Empfänger meines PM-Dokuments eine Berechnung nachvollziehbar zu machen. Ich habe es in 2008 hier gepostet. CreateStringFormula.bas in neuester Version ist hier angehängt, mit Symbol.
@Softmaker:
Obiges in Fett könnte gelegentlich in die Hilfe aufgenommen werden. Und, man beachte den (unwesentlichen) Fehler in BM in Zeile 1 im obersten Post hier.
NACHTRAG: Mit "Empfänger meines PM-Dokuments" meinte ich eigentlich den Empfänger eines Ausdrucks oder eines pdf-Exportes davon. Im Dokument selbst kann man ja relativ leicht eine Formel nachvollziehen. Dennoch ist das Skript auch sehr nützlich um sofort und übersichtlich eine Kontrolle der Eingangswerte einer Formel zu haben.