Clever-Excel-Forum

Normale Version: Auf eine andere .xlsx zugreifen mit fortlaufender Benennung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich möchte aus einer Excel Datei auf eine andere Excel Datei zugreifen und einen Bezug erstellen. Soweit so gut:

=ZÄHLENWENN([Bewerber.xlsx]Bewerber!$L:$L;Aufgabe!$C1750)

Das funktioniert. Das Problem ist, dass die Bewerber Datei täglich aktualisiert wird. Dabei ändert sich jedoch auch der Name der Datei:

2017-01-09-2254_Bewerber
2017-01-10-2229_Bewerber
2017-01-11-2230_Bewerber
2017-01-12-2228_Bewerber

Das Datum YYYY-MM-TT steigt fortlaufend an.
Die vierstellige Ziffer, die anschließt ist zufällig generiert.
Bewerber bleibt gleich. Die Bindestriche und der Unterstrich ebenfalls.

Gibt es eine Möglichkeit mit der ich immer automatisch auf die aktuellste Datei zugreifen kann?

Ich habe auch hier nachgefragt: http://www.ms-office-forum.net/forum/sho...ost1783294 

Vielen Dank im Voraus und Liebe Grüße.
Hallo,

m.K.n. nur mit VBA.

mfg
Hallöchen,
Stehen alle Dateien in einem Ordner und wenn ja, in welchem - eventuell im gleichen wie die Zieldatei?
Werden die Quelldateien nochmal irgendwann bearbeitet?
Ist die aktuelle Datei immer vom "heutigen" Datum Smile
Die Daten vom vorletzten Datum werden aktuell nicht mehr importiert?
(13.01.2017, 15:34)schauan schrieb: [ -> ]Hallöchen,
Stehen alle Dateien in einem Ordner und wenn ja, in welchem - eventuell im gleichen wie die Zieldatei?
Werden die Quelldateien nochmal irgendwann bearbeitet?
Ist die aktuelle Datei immer vom "heutigen" Datum Smile
Die Daten vom vorletzten Datum werden aktuell nicht mehr importiert?

Hallöchen auch dir :D,

Alle Dateien stehen im selben Ordner, außer der Zieldatei. 
Jeden Tag kommt eine neue Quelldatei dazu. Diese wird nicht noch einmal bearbeitet.
Die Datei ist immer vom vorhergegangenen Datum, also von "gestern".
Es sollen nur die Daten von der jeweils aktuellsten Quelldatei importiert werden.

Bei weiteren Fragen einfach noch schreiben ;;) .
LG
off topic...

(13.01.2017, 11:58)Excel_Tabellen schrieb: [ -> ]Hallo zusammen,

...

Ich habe auch hier nachgefragt: http://www.ms-office-forum.net/forum/sho...ost1783294 

Vielen Dank im Voraus und Liebe Grüße.

Du hast Glück das Hajo nicht da ist, ansonsten würde Dein Beitrag ... Hallo, alles cool, ich mach nur Spaß... (^_-) Hajo meint das aber ernst, also vorsicht im Nachbarforum... Dort ist Hajo mächtig (unwichtig)...
Hallöchen,

ich hab hier mal ein Makro zur Korrektur der Formeln.
In dieser Zeile musst Du noch den genauen Ort eingeben, wo die Daten liegen
strNewFile = Dir("D:\Test\" & Format(Date - 1, "yyyy-mm-dd-") & "????" & "_Bewerber.xlsx")

Dann weiß ich natürlich nicht, wo die Formeln stehen. Ich habe hier mal B1:B20 programmiert. Dass und auch die Angabe bei After musst Du anpassen.
Eine Fehlerbehandlung ist nicht drin. Ich setze also voraus, dass es immer eine Datei von "vorgestern" und die Formeln von "gestern" gibt. Falls nicht 7 Tage die Woche die Daten aktualisiert werden, was ich nicht weiß, gibt es auch ein Problem.
Die Datei von "vorvorgestern" muss bei der Bearbeitung auch geschlossen sein, ansonsten wird der Dateiname nicht in den Formeln gefunden.
Der Code ist leider nicht 100% getestet. Wollte jetzt keine Formeln und Dateien nachbauen Sad

Code:
Sub FormelnKorrigieren()
'Variablendeklarationen
'String
Dim strNewFile$, strOldFile$
'Variant
Dim vCell
'alte Bezeichnung suchen
Set vCell = Range("B1:B20").Find(What:=Format(Date - 2, "yyyy-mm-dd-"), After:=Range("B1"), LookIn:=xlFormulas _
    , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False)
'Bezeichnung uebernehmen
strOldFile = vCell.Value
'pruefen, ob Datei mit neuen Datum vorhanden ist / Dateiname an Variable uebergeben
strNewFile = Dir("D:\Test\" & Format(Date - 1, "yyyy-mm-dd-") & "????" & "_Bewerber.xlsx")
'Wenn eine Datei vorhanden ist, dann
If strNewFile <> "" Then
  'erste 16 Zeichen vom Dateinamen abtrennen
  strNewFile = Left(strNewFile, 16)
  '16 Zeichen vom Dateinamen abtrennen und zuvor =ZAEHLENWENN([
  strOldFile = Left(Split(strOldFile, "[")(1), 16)
  'Name in Formel ersetzen
    Range("B1:B20").Replace What:=strOldFile, Replacement:=strNewFile _
        , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat _
        :=False, ReplaceFormat:=False
'Ende Wenn eine Datei vorhanden ist, dann
End If
End Sub