Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1148to1152
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
Zellbezug aus wechselnden Dateinamen
Martin
Hallo Experten,
ich habe mal eine ganz grundsätzliche Frage: Ich möchte eine Zieldatei erstellen, welche sich bestimmte Werte aus mehreren Quelldateien zieht. Dabei kommt pro Woche eine neue Quelldatei hinzu, der Name der Quelldatei hat dabei das Format 07April10 (2).xls und dann kommen immer 7 Tage hinzu, dh die nächste Quelldatei heisst dann 14April10 (2).xls usw
Bei meinen bescheidenen VBA-Kenntnissen habe ich immer feste Quelldateien gehabt, dass war dann sehr einfach zuzuweisen. Gibt es einen Befehl ähnlich der Formel in Excel a la Zelle B2 + 7? Oder würde eine rudimentäre Lösung funktionieren in dem ich einfach zB die nächsten 50 Dateinamen als Quelldatei angebe? Dann würde halt in der Zieldatei solange 0 stehen bis halt was in der entsprechenden Quelldatei steht.
Ich bin echt für jeden Tipp dankbar!!
Eine volle Automatik ohne Liste wäre dann...
07.04.2010 10:58:16
Luc:-?
…möglich, Martin,
wenn der letzte Dateiname irgendwo gespeichert wurde oder der Name per eindeutigem Algorithmus aus dem Tagesdatum (Kalenderwoche!) erzeugt wdn kann.
Gruß Luc :-?
AW: Eine volle Automatik ohne Liste wäre dann...
07.04.2010 11:05:13
Martin
Hallo Luc, danke für deine Antwort! Aber die war mir noch ein bisschen arg abstrakt, bin echt kein VBA-Experte. Also alle Quelldateien sind abgespeichert und der Name ist immer plus 7 Tage, folgt also einem festen Algorithmus den Excel auch kapiert... könntest du mir sagen, wie ich konkret an die Sache herangehen soll? Danke!
Wenn du bei deiner ursprgl Anforderung/Aussage...
07.04.2010 14:03:41
Luc:-?
…geblieben wärst, Fritzi,
hätte das für jeden Mittwoch so aussehen können…
Sub Dateiname()
Const DatWoT As Integer = 3
Dim wt As Date, DatN As String, kkt As Integer, jkw As Variant
jkw = Split(Format(Now, "yyyy ww", vbMonday, vbFirstJan1), " ")
wt = CDate("1.1." & jkw(0))
With WorksheetFunction
kkt = .Weekday(CDate(wt), 2) - DatWoT
DatN = Format(wt + 7 * (jkw(1) - 1) - kkt, "ddmmmmyy", _
vbMonday, vbFirstJan1) & "(2).xls"
MsgBox DatN & vbLf & Format(wt, "ww", vbMonday, vbFirstJan1) & vbLf & _
Format(CDate("31.12." & jkw(0)), "ww", vbMonday, vbFirstJan1)
End With
End Sub
Wenn es grdsätzl ein anderer Wochentag sein soll, musst du nur den Wert der Konstante DatWoT am PgmAnfang durch seine lfdNr austauschen.
Anmerkung: Die beiden KWochenangaben für den 1. u.letzten Tag von 2010 in der MsgBox sollen nur zeigen, dass Erichs diesbzgl Aussage hier nicht zutrifft.
Gruß Luc :-?
Anzeige
Wenn man aus der Subroutine eine udFkt...
07.04.2010 16:15:06
Luc:-?
…fürs TabBlatt macht, Fritzi,
könnte DatWoT auch flexibel als FktsArgument angebbar gestaltet wdn. Ansonsten könnte in das die Subroutinen-Befehle beinhal­tende Pgm auch eine InputBox für Parametereingabe integriert oder Dateiname entsprechend parametriert und mit Rufprozeduren für beliebige Tage aufgerufen wdn…
Su6 RufDateiname1(): Call Dateiname(1): End Su6 …usw. für Su6 Dateiname(Optional ByVal DatWoT) — die Const-Zeile entfällt dann und ein zusätzlicher neuer 1.Befehl muss nach der Dim-Zeile eingefügt wdn… If IsMissing(DatWoT) Then DatWoT = 3 für den Default-Wochentag Mittwoch. Andere Tage müssen dann über die Rufprozeduren (oder per InputBox) vorgegeben wdn.*
* Die 6 in Su6 soll natürl ein b sein — ich lasse mir doch nicht die Notationsform von der Forumssoftware vorschreiben!
Diese Form der Parameterdeklaration erlaubt die Anzeige der Subroutine im MakroAssi.

Gruß Luc :-?
Anzeige
Woraus entsteht der neue Dateiname?
07.04.2010 11:27:34
Erich
Hi Martin,
"Dabei kommt pro Woche eine neue Quelldatei hinzu"
Wovon genau hängt der Name der neuen Quelldatei ab?
Lässt sich der Name vielleicht aus dem jeweiligen Tagesdatum ableiten?
Das könnte so aussehen:
 AB
1heuteletzte Datei
206.04.201031März10(02)
307.04.201031März10(02)
408.04.201007April10(02)
509.04.201007April10(02)
610.04.201007April10(02)
711.04.201007April10(02)
812.04.201007April10(02)
913.04.201007April10(02)
1014.04.201007April10(02)
1115.04.201014April10(02)
1216.04.201014April10(02)

Formeln der Tabelle
ZelleFormel
B2=A2-1-REST(A2-5;7)

Das Format in Spalte B ist
TTMMMMJJ"(02)"
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Woraus entsteht der neue Dateiname?
07.04.2010 11:56:00
Martin
Hi Erich,
beim Dateinamen der Quelldatein bin ich recht flexibel, er sollte nur das Datum der Erstellung beinhalten - und das ist leider nicht immer der Montag sondern kann auch mal der Dienstag in der Woche sein.... ahhh :-) Jetzt habe ich überlegt, die Quelldatei mit der Kalnderwoche und dem Datum der Woche zu benennen, aktuell zB KW14 05.04.10_11.04.10.xls
Also bei der "Gestaltung" des Dateinamens bin ich bissl flexibel, er soll halt ermöglichen, dass das Makro checkt wann eine neue Datei enstanden ist und aus der dann 3 Werte ziehen...
Ablauf unklar
07.04.2010 12:46:18
Erich
Hi Martin,
das Hauptproblem ist nun, die Aufgabenstellung zu klären.
Eingangs hattest du geschrieben: immer + 7 Tage - das ist jetzt wohl nicht mehr so.
Bei der KW empfehle ich, das KW-Jahr mitzuverwenden.
Z. B in 2012 gibt es zweimal die Woche 1 - einmal zu Beginn und einmal am Ende des Jahres.
Eindeutig wäre KW2012/01 (am 1.1.2012) und KW2013/01 (am 31.12.2012).
Warum soll das Erstellungsdatum Teil des Dateinamens sein? Das Dateisystem kennt es ohnehin...
Wie ist der Ablauf insgesamt? Das steht in etwa fest:
- Es gibt ein Verzeichnis mit Excelmappen mit Namen, die einem festgelegten Muster entsprechen.
- Etwa wöchentlich kommt eine Mappe dazu.
Wann wired ausgewertet? Auch wöchentlich?
Wenn ein Makro feststellen soll, ob eine Mappe neu ist, muss es die alten Mappen kennen.
Sollen/müssen die Namen der alten Mappen gespeichert werden?
Oder hängt es doch vom Tagesdatum ab, welche Mappen da sein müssten?
Muss geprüft werden, dass eine neue Mappe entstanden ist?
Ist es sinnvoll, eine Auswertung zu erstellen, wenn es z. B. die Mappe für die Vorwoche noch nicht gibt?
(Manchmal haben Bearbeiter Urlaub, oder es gibt eine Systemumstellung...)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Ablauf unklar
07.04.2010 13:45:47
Martin
HZi Erich,
das Datum soll definitv Teil des Dateinamens sein da es sich um ein Protokoll eines wöchtentlichen Meetings handelt und wenn man es nur Portokoll nennen würde, blickt keiner mehr durch :-)
Also das rausziehen sollte kein Problem sein, vielmehr die übergeordnete Aufgabe, dass er checkt: Sobald eine neue Datei hinzugekommen ist, aus dieser 2 Werte zu ziehen: Das Datum in Zelle 2,2 und die GuV Summe in Zelle 2,3. Angenommen die Dateien bisher heissen:
22 März 10 (2).xls
29 März 10 (2).xls
5 April 10 (2).xls
und nächste Woche kommt hinzu:
13 April 10 (2).xls (was NICHT plus 7 Tage ist)
Jede Woche kommt eine neue Datei in dem Ordner hinzu, die alten Dateien bleiben bestehen. Und das Makro sollte checken, ob eine neue Datei hinzugekommen ist.
Danke für deine Bemühungen!
Anzeige
Ablauf weiterhin unklar
07.04.2010 16:20:47
Erich
Hallo Martin,
"das Hauptproblem ist nun, die Aufgabenstellung zu klären." hatte ich geschrieben. Stimmt wohl.
Die Kalenderwoche im Dateinamen hast du jetzt wohl wieder fallen gelassen. Naja, denn eben ohne.
Diese Fragen hatte ich - bisher ohne deine Antwort - auch gestellt:
Wann wird ausgewertet? Auch wöchentlich?
Wenn ein Makro feststellen soll, ob eine Mappe neu ist, muss es die alten Mappen kennen.
Sollen/müssen die Namen der alten Mappen gespeichert werden?
Oder hängt es doch vom Tagesdatum ab, welche Mappen da sein müssten?
Muss geprüft werden, dass eine neue Mappe entstanden ist?
Ist es sinnvoll, eine Auswertung zu erstellen, wenn es z. B. die Mappe für die Vorwoche noch nicht gibt?
(Manchmal haben Bearbeiter Urlaub, oder es gibt eine Systemumstellung...)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige