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

Forumthread: Pfad und Dateiname in FormulaLocal

Pfad und Dateiname in FormulaLocal
17.12.2014 12:35:27
WalterK
Hallo,
folgenden Codeteil bringe ich nicht zum funktionieren:
wksAus.Range("B5:P21").FormulaLocal = "='" & wksAus.Range("$A$1") & "\" & wksAus.Range("B$3").Value & "\[" & wksAus.Range("$A5").Value & "]Jahresübersicht'!" & wksAus.Range("B$2") & ""
1.) Der erste Teil des Pfades soll aus der Zelle $A$1 ausgelesen werden.
2.) In B$3 steht der Ordnername (Spalte B ist veränderbar).
3.) In $A5 steht der Dateiname.xls (hier ist die Zeilennummer veränderbar).
4.) In B$2 steht die Zelladresse, z.B. $A$5 (Spalte B ist veränderbar). Das heißt, in C$2 steht z.B. $A$6 usw.
Wenn ich den Code laufen lasse wird in der Zelle B5 die richtige Formel eingetragen.
Allerdings wird beim Weiterkopieren die Formel 1:1 in alle Zellen eingetragen, d.h. die spaltenweisen und zeilenweisen Änderungen werden nicht übernommen und so steht in allen Zellen das gleiche Ergebnis.
Besten Dank für die Hilfe und Servus, Walter

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pfad und Dateiname in FormulaLocal
17.12.2014 12:47:17
Rudi
Hallo,
ist doch klar. Du setzt den Formelstring für alle Zellen gleich zusammen.
Du wirst nicht daran vorbei kommen, die Formel per Schleife einzeln in die Zellen einzutragen (oder erst in ein Array und dann auf einen Rutsch).
Gruß
Rudi

AW: Pfad und Dateiname in FormulaLocal
17.12.2014 12:55:16
Daniel
Hi
das Konzept absoluter/relativer Zellbezug funktioniert nur in Excelformeln und nicht in VBA.
Der Range-Funktion ist es vollkommen egal, ob du Range("A1") oder Range("$A$1") verwendest, es wird immer der Wert aus der Zelle A1 gelesen.
der Workarund wäre hier folgender:
1. Erstelle die Formel mit dem externen Zellbezug zunächst nicht direkt als Formel, sondern als Formel, die einen Text erstellt, der aussieht wie die spätere Formel. Innerhalb dieser Texterstellungsformel kannst du dann die relativen Zellbezüge verwenden.
2. Ersetze dann die Textformeln durch ihren Wert mit .Formula = .Value, das ist für Excel wie eine Neueingabe und es wird die Formeln berechnen.
With wksAus.Range("B5:P21")
.Formula = "=""='""&$A$1&""\""&B$3&""\[""&$A5&""]Jahresübersicht'!""&B$2"
.Formula = .Value
End With
Beachte hierbei, dass der Text immer in der .Formula-Schreibweise geschrieben werden muss (A1-Bezüge mit englischen Funktionsnamen und dem Komma als Parametertrennzeichen, ist hier aber egal, weil sich bei einfachen Bezügen deutsche und englische Schreibweise nicht unterscheiden)
Gruß Daniel

Anzeige
Außerdem gibt's ja noch FormulaR1C1(Local)! orT
17.12.2014 13:06:11
Luc:-?
Gruß, Luc :-?

AW: Pfad und Dateiname in FormulaLocal
17.12.2014 13:06:50
Rudi
Hallo,
als Ansatz:
Sub aaa()
Dim z As Long, s As Long
Dim a(5 To 21, 2 To 16)
With wksAus
For z = 5 To 21
For s = 2 To 16
a(z, s) = "='" & .Cells(1, 1) & "\" _
& .Cells(3, s) & "\[" _
& .Cells(z, 1) & "]Jahresübersicht'!" _
& .Cells(2, s)
Next s
Next z
.Range("B5:P21").FormulaLocal = a
End With
End Sub

Gruß
Rudi

Anzeige
AW: Pfad und Dateiname in FormulaLocal
17.12.2014 13:11:09
WalterK
Hallo,
besten Dank den Helfern, jetzt habe ich ja einiges zum testen.
Servus, Walter
;

Forumthreads zu verwandten Themen

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