Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten in abh. vom datum öffnen

Daten in abh. vom datum öffnen
Kris
Hallo zusammen,
habe folgendes problem:
Ich habe ein tool in excel konstruiert, dieses tool vgl. zwei datensätze, aus zwei aufeinander folgenden wochen, also bspw. die aktuelle woche mit der vorherigen woche. dabei werden die daten aus geschlossenen mappen eingelesen. die dateinamen enthalten dabei das datum, an dem die daten erstellt wurden (zB. mappe_2009.10.12).
nun möchte ich, wenn ich die daten eines worksheets (zb. aus mappe_2009.10.12) in worksheet1 importiere, dass ich dann automatisch die daten nächst "kleineren" datum (mappe_2009.10.02) in worsheet2 importiere! alle datensätze sind in einem ordner gespeichert und es gilt quasi beim importieren der ausgewählten datei automatisch einen abgleich aller vorhandenen mappen anhand des datums vorzunehmen und das nächst zurückliegende datum automatisch mit zu importieren!
die gestaltung der dateinamen kann ich auch ändern, denkbar waere auch eine zuordnung über die kalenderwoche, diese kann im dateinamen, als auch im worksheet selbst untergebracht werden. eigentlich eine aufgabe für access aber sollte auch mit excel funktionieren.
also im sinne von:
With ActiveWorkbook.Worksheets(1).Range("A1:S500")
.FormulaArray = "='c:\temp\[Mappe_2009.10.12.xls]Tabelle1'!A1:S500"
.Value = .Value
End With
...jetzt soll anhand des datums von mappe_2009.10.12 ein vergleich mit allen vorhandenen dateien in dem ordner gemacht werden und die daten des am nächsten zurückliegende datum ins worksheet2 kopiert werden! (oder wenn kalenderwoche 34 in worksheet1 kopiert, dann die nächst zurückliegende kalenderwoche z.b. 32 in ws2 kopieren)
With ActiveWorkbook.Worksheets(2).Range("A1:S500")
.FormulaArray = "='c:\temp\[Mappe_2009.10.02.xls]Tabelle1'!A1:S500"
.Value = .Value
End With
hoffe, ihr versteht was ich meine!!
vielen dank im voraus!
gruss kris

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Daten in abh. vom datum öffnen
28.01.2010 17:20:08
fcs
Hallo kris,
verwende in Dateinamen keine Punkte (.) als Trennzeichen im Datum. Das bereitet bei der Suche nach Dateien gelegentlich Probleme. Bindestrich ist besser oder ganz ohne Trennzeichen.
Das Makro zur Ermittlung des gewünschten Dateinamens bzw. der Datei mit dem nächst früheren Datum sieht dann etwa wie folgt aus.
Gruß
Franz
Sub WertePerFormelHolen()
Dim sDatum As String, dDatum As Date, sDatei As String, dDateiVorher As Date
Dim sVerzeichnis As String, sDateiQuelle As String
sVerzeichnis = "C:\temp" 'Verzeichnis mit den Dateien
sVerzeichnis = "C:\Lokale Daten\Test\Zwischenordner"
sDateiQuelle = "Mappe_" 'Anfang des Quelldateinamens vor dem Datum
sDatum = "2009-10-12" 'Datum der datei für Blatt 1 - ggf. über Inputbox eingeben
dDatum = CDate(sDatum)
'Werte nach Blatt 1 holen
With ActiveWorkbook.Worksheets(1).Range("A1:S500")
.FormulaArray = "='" & sVerzeichnis & "\[" & sDateiQuelle & sDatum & ".xls]Tabelle1'!A1: _
S500"
.Value = .Value
End With
dDateiVorher = 1 'Startwert für Datei mit früherem Datum
'Dateien mit Namensschema im Verzeichnis suchen
sDatei = Dir(sVerzeichnis & "\" & sDateiQuelle & "?-?-?.xl*")
Do Until sDatei = ""
'Datum aus Dateinamen ausschneiden
sDatum = Mid(sDatei, Len(sDateiQuelle) + 1, 10)
'Datum gegen bereits ermitteltes früheres Datum vergleichen
If CDate(sDatum)  dDateiVorher Then
dDateiVorher = CDate(sDatum)
End If
'nächste datei
sDatei = Dir
Loop
If dDateiVorher = 1 Then
MsgBox "Keine frühere Datei gefunden", vbOKOnly + vbInformation
Else
'Werte nach Blatt 2 holen
With ActiveWorkbook.Worksheets(2).Range("A1:S500")
.FormulaArray = "='" & sVerzeichnis & "\[" & sDateiQuelle & _
Format(dDateiVorher, "YYYY-MM-DD") & ".xls]Tabelle1'!A1:S500"
.Value = .Value
End With
End If
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige