Clever-Excel-Forum

Normale Version: Datenpfad über Zelleninhalt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

jetzt habe ich noch ein Problem, bei dem ich nicht weiterkomme.

Ich habe eine Excel-Tabelle die einige Berechnungen durchführt. Die Daten hierzu bezieht sie aus einer sich wöchentlich ändernden Excel-Datei.

Ich habe momentan in der betreffenden Zelle folgende Formel:

='C:\Daten\[wochenplan-kw15.pdf.xlsx]Table 1'!$H8

Jetzt muss ich jede Woche die Verweise aktualisieren, was mehr als lästig ist.

Mein Wunsch wäre, dass ich in der Tabelle in einem Feld (z.B. A10) die Kalenderwochennummer eintrage  und der Verweis sich damit automatisch aktualisiert, also quasi

='C:\Daten\[wochenplan-kw[A10].pdf.xlsx]Table 1'!$H8

Leider habe ich bisher keine passende Möglichkeit gefunden.

Für Ideen wäre ich echt dankbar.

Gruß
Hallo,

bei geschlossenen Dateien kannst Du leider kein INDIREKT() anwenden. Da wirst Du, denke ich, auf VBA zurückgreifen müssen.

Hier eine Möglichkeit (ungetestet) und ohne jegliche Fehlerbehandlung

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, Range("ZelleInDerDieNeueKWSteht")) Is Nothing Then
      GetNewFile (Target.Value)
   End If
End Sub

Sub GetNewFile(strKW As String)
   GetObject("C:\Daten\wochenplan-kw" & strKW & ".pdf.xlsx").Sheets(1).Range("H8").Value
End Sub

Gruß Jonas
Hallo Jonas,

danke für den Vorschlag. Ich befürchte aber, dass ich mich mein Problem nicht deutlich genug beschrieben habe.

Also, ich habe für jede Woche eine Datendatei (Wochenplan-kw15 ; Wochenplan-km16 ;...) mit jeweils 7 Arbeitsblättern für die einzelnen Tage.

In der EXcel-Datei mit der ich die Berechnungen anstelle, gibt es ein Feld in dem ich die jeweilige Kalenderwoche eingebe, welche ich gerade bearbeite.

Gebe ich also in dieses Feld die "14" für die KW 14 ein, so sollen die Daten aus der Datei "Wochenplan-kw14" gezogen werden, Bei Eingabe der "15" aus der Datei "Wochenplan-kw15", usw.

Mit Deiner Lösung komme ich da nicht zurecht.

Gruß SkyVision
Moin,
ziehe dir alle erforderlichen Files per Power Query (Daten | Abrufen und transformieren) in 1 Liste und filtere diese dann.
Das mit den 7 Files ist für Excel sowieso kontraproduktiv, denn zusammengehörende Daten gehören zusammen (in 1 Liste/Tabelle).
Hallo Günther,

die Datendatei (Wochenplan-kwxx.xlsx) wird mir jede Woche so angeliefert, darauf habe ich keinen Einfluss. Der Verweis auf die Daten in der Datei selbst ist auch nicht mein Problem.

Momentan muss ich jede Woche die Verweise auf die Datendatei mit suchen / ersetzen händisch ändern. Da sich jedoch in der Datendatei nur die Wochennummer ändert, wäre es halt schön, diese in einer Zelle einzugeben und anschließend die Daten der jeweiligen Datei automatisch zu bekommen. Also ein Platzhalter in dem Verweis auf die Datendatei.

Gruß SkyVision
So wie ich das sehe, hast Du 2 Lösungen für dein Problem bekommen.

Mit Günthers Lösung fährst Du sogar ohne VBA und da Du ja xl2016 hast, musst Du nicht mal ein zusätzliches Addin installieren.

die Struktur deiner Daten kannst Du ja in PQ/(Daten | Abrufen und transformieren) deinen Bedürfnissen anpassen. Dann aktualisiertst du immer nur die Datenquelle.

Alternativ könntest Du auch noch per VBA deine aktuelles "Suchen und Ersetzten" auf Knopfdruck durchführen lassen. Allerdings tendiere ich in diesem Fall eher zu PQ/(Daten | Abrufen und transformieren)

Gruß Jonas
Hallo Jonas, hallo Günther

danke für Eure Antworten, allerdings kenn ich mich mit PQ überhaupt nicht aus (genau genommen höre ich heute das erste Mal davon) und in der Arbeit habe ich nur Office 2013 ohne die Möglichkeit irgendwelche Addons zu installieren. Somit ist diese Lösung für mich nur ein riesengroßes ?

Die Lösung mit Suchen / Ersetzen wäre für mich am besten, allerdings will ich nicht immer den kompletten Dateinamen eingeben, sondernnur die Zahl / Wochennummer. Also in Zelle A1 die Wochennummer eingeben (z.B. 16), dann auf einen Button klicken und das Makro sucht den Datei-Verweis "Wochenplan-KW15.xlsx" und ersetzt dies mit dem Verweis "Wochenplan-KW(A1).xlsx". Nur nach was soll ich suchen, da sich der Dateiname jede Woche am Ende ja verändert und wie sag ich es dem Programm, dass er die Endung des Dateinamens aus der Zelle A1 nehmen soll.

Tut mir leid, dass ich so "blöd" frage, aber ich komme da einfach nicht weiter.

Gruß
Wenn Du es unbedingt willst, lässt sich auch das Suchen und Ersetzen automatisieren.

z.B. so (Ohne Fehlerbehandlung)
Code:
Option Explicit

Private Sub btnSuchenUndErsetzen_Click()
   Dim strKWOld As String, strKWNew As String
   
   strKWOld = InputBox("Alte KW:")
   strKWNew = InputBox("Neue KW:")
   
   Range("DeinBereich").Replace What:="kw" & strKWOld, Replacement:="kw" & strKWNew, LookAt:= _
       xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False
End Sub
Das wäre jetzt über Inputboxen, geht natürlich auch mit Zellen.
Gruß Jonas
Hi,

(07.04.2017, 11:48)SkyVision schrieb: [ -> ]und in der Arbeit habe ich nur Office 2013 ohne die Möglichkeit irgendwelche Addons zu installieren.

auch ohne Admin-Rechte war es mir bisher immer möglich, auf den Rechnern Excel-AddIns zu "installieren".
Durch einfaches Auspacken in ein Verzeichnis und Aufrufen bei den Entwicklertools / AddIns, da muß gar nichts installiert werden.
Hallo Jonas,

super, das funktioniert perfekt. Wenn ich allerdings eine Kalenderwoche eingebe, von der es keine Datei gibt öffnet sich ein Explorer-Fenster zur Auswahl der Datei. Kann man das noch irgendwie verhindern ?

Gruß und Danke

SkyVision
Seiten: 1 2