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

Dateien öffnen

Dateien öffnen
20.04.2006 21:26:42
Jürgen
Hallo zusammen,
habe folgendes Problem.
Muß aus verschiedenen Excel-Dateien Daten auslesen. Nun mein Problem, diese Dateien haben den selben Namen, sie sind nur unter verschiedenen Ordnern gespeichert. Sprich die Daten vom Jahr 2003 sind im Ordner 2003 gespeichert, die Daten von 2004... die eigentliche Dateien besitzen aber immer den selben Namen.
Nun gehe ich folgender Maßen vor, da ich ja die kompletten Daten ab Jahr 2003 benötige, öffne ich zuerst die Datei die unter 2003 abgelegt ist und hole mir die Daten heraus, dann schließe ich die Datei und mache die nächste auf.
Da sämtliche Dateien Makro-Verweise(beim Öffnen der Datei werden automatisch andere Dateien mit geöffnet) enthalten, dauert das öffnen schon eine halbe Ewigkeit(Workbook open enthält nichts, der Verweis öffnet automatisch die anderen Dateien). Da ich öfters diese Prozedur durchlaufen muß, ist es schon eine ziemliche plagerei(Dauert ungefähr 1,5 min, mit einem 1,6Ghz Notebook). Mir wäre schon geholfen wenn ich sämtliche Dateien offen lassen könnte, geht allerdings nicht, da sie ja alle den selben Namen besitzen, oder gibt es hierfür eine Lösung? Umbennen geht leider auch nicht, da mir die Dateien gar nicht gehören und ich nur mit den enthaltenen Daten arbeite.
Kann man die Verweise beim Öffnen deaktivieren, sodaß keine weiteren Dateien geöffnet werden?
Gruss
Jürgen

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien öffnen
20.04.2006 21:39:09
Solaiman
Hallo Jürgen,
kannst du die Dateien auch nicht temporär umbenen?
Gruß
Solaiman
AW: Dateien öffnen
20.04.2006 21:44:10
Jürgen
Hallo Solaiman,
wie soll das funktionieren, geht da mit einer geöffneten Datei, oder meinst Du die Datei unter einen anderen Namen abspeichern und später wieder löschen?
Gruß
Jürgen
AW: Dateien öffnen
20.04.2006 21:54:10
Solaiman
Hallo Jürgen,
das zweite meine ich.
Dateien, die gleichen Namen haben temporär umbenennen und wenn du mit deiner Arbeit fertig bist und die Dateien nicht mehr brauchst wieder den alten Namen vergeben.
Am einfachsten gehts z.B. wenn du die Dateien durchnummerierst etwa
Daten_1
Daten_2
Daten_3
Daten_4
usw.
und am Ende wieder die Nummern löschst.
Wieviele Dateien sind es denn insgesamt?
Gruß
Solaiman
Anzeige
AW: Dateien öffnen
20.04.2006 22:34:28
Jürgen
Hallo Solaiman,
verstehe nicht ganz wie ich eine Datei temporär umbenennen kann, wie funktioniert dies, was muß ich tun, muß ja per Makro ablaufen. Geht das eigentlich eine geöffnete Datei umzubenennen?
Wäre Dir dankbar für nähere Erleuterungen, am besten ein Makro hierfür.
Gruß
Jürgen
AW: Dateien öffnen
20.04.2006 23:47:39
Solaiman
Hallo Jürgen,
hier ein Beispiel:

Sub Umbenennen()
'Zu Beginn bevor du die Dateien (\xxx\Daten.xls) öffnest, diesen Block ausführen
Name "C:\Daten\2003\Daten.xls" As "C:\Daten\2003\Daten_01.xls"
Name "C:\Daten\2004\Daten.xls" As "C:\Daten\2004\Daten_02.xls"
Name "C:\Daten\2005\Daten.xls" As "C:\Daten\2005\Daten_03.xls"
Name "C:\Daten\2006\Daten.xls" As "C:\Daten\2006\Daten_04.xls"
'dein Code
'Am Ende nachdem alle Dateien geschlossen sind folgenden Block ausführen
Name "C:\Daten\2003\Daten_01.xls" As "C:\Daten\2003\Daten.xls"
Name "C:\Daten\2004\Daten_02.xls" As "C:\Daten\2004\Daten.xls"
Name "C:\Daten\2005\Daten_03.xls" As "C:\Daten\2005\Daten.xls"
Name "C:\Daten\2006\Daten_04.xls" As "C:\Daten\2006\Daten.xls"
End Sub

Gruß
Solaiman
Anzeige
AW: Dateien öffnen
21.04.2006 22:34:57
Jürgen
Hallo Solaiman,
vielen Dank für Deien Tipp.
Eine Frage, wenn ich diese Dateien umbenenne, existieren dann in der Zeit in der mein Programm läuft die Dateien unter ihren vorigen Namen noch, oder sind diese nur unter den von mir gegebenen "neuen Namen" aufrufbar, die Dateien liegen auf dem Netz,somit können mehrere User darauf zugreifen, und hätten natürlich dann ein Problem.
Was heißt eigentlich Temporär?
Gruss
Jürgen
AW: Dateien öffnen
21.04.2006 23:15:46
Solaiman
Hallo Jürgen,
temporär bedeutet übergangsweise - also nur für die Zeit, in der du an diese Dateien arbeitest!
Dabei wird die original Datei umbenannt und somit ist es für andere dann nicht mehr erreichbar!!!
Andere Lösung ist, eine Kopie der Dateien anzulegen - NUR für dich, die anderen merken auch nichts davon! - am Ende, wenn dein Code durchgelaufen ist, die Kopien wieder löschen.
Dazu habe ich dir 2 Skripts BAT-Dateien erstellt:
1. als C:\Daten\temp_copy.bat" speichern
REM -------------------------------------------------------------------------------
REM Kopie der original Dateien für die Zeit der Bearbeitung (temporär) anlegen
copy "C:\Daten\2003\Daten.xls" "C:\Daten\2003\Daten_Juergen_%date%.xls"
Copy "C:\Daten\2004\Daten.xls" "C:\Daten\2004\Daten_Juergen_%date%.xls"
Copy "C:\Daten\2005\Daten.xls" "C:\Daten\2005\Daten_Juergen_%date%.xls"
Copy "C:\Daten\2006\Daten.xls" "C:\Daten\2006\Daten_Juergen_%date%.xls"
REM -------------------------------------------------------------------------------
2. als C:\Daten\temp_del.bat" speichern
REM -------------------------------------------------------------------------------
REM angelegte Dateien wieder löschen
Del "C:\Daten\2003\Daten_Juergen_%date%.xls"
Del "C:\Daten\2004\Daten_Juergen_%date%.xls"
Del "C:\Daten\2005\Daten_Juergen_%date%.xls"
Del "C:\Daten\2006\Daten_Juergen_%date%.xls"
REM -------------------------------------------------------------------------------
Und dein VBA-Code würde etwa so aussehen:
'------------------------------------------------------------------------------------

Sub tempDaten()
'Zu Beginn bevor du die Dateien (\xxx\Daten.xls) öffnest, diesen Skript ausführen
Shell "C:\Daten\temp_copy.bat", vbHide
'dein Code
'Am Ende, nachdem alle Dateien geschlossen sind folgenden Skript ausführen
Shell "C:\Daten\temp_del.bat", vbHide
End Sub

'------------------------------------------------------------------------------------
Ich habe es zwar getestet aber dennoch:
Alles auf eigene Verantwortung, wenn du es dir traust!!!
Gruß
Solaiman
Anzeige
AW: Dateien öffnen
21.04.2006 23:26:57
Jürgen
Hallo Solaiman,
vielen Dank für Deine weitere Hilfe, werde dieses ausprobieren, hört sich gut an.
Was bedeutet eigentlich der Anhang "vbHide"?
Bedeutet dies das dieses unsichtbar durchgeführt wird, oder?
Gruss
Jürgen
AW: Dateien öffnen
21.04.2006 23:35:59
Jürgen
Hallo Solaiman,
noch eine weitere Frage, was für ein Vorteil haben Skripts BAT-Dateien?
Die Kopien anlegen und wieder löschen könnte ich doch genausogut in meinem Programm direkt integrieren.
Kann ich beim Aufruf einer Skripts BAT-Dateie einen Parameter übergeben? Es gibt von den Dateien die ich öffnen/bearbeiten muß in der Art ungefähr 20 Stück. Sie liegen zwar im gleichen Verzeichnis aber unter verschiedenen Namen. Könnte dann den Namen im Parameter übergeben.
Gruss
Jürgen
Anzeige
AW: Dateien öffnen
22.04.2006 18:22:30
Solaiman
Hallo Jürgen,
>>Was bedeutet eigentlich der Anhang "vbHide"?
>>Bedeutet dies das dieses unsichtbar durchgeführt wird, oder?
Ja genau so ist es.
Gruß
Solaiman
Anzeige
AW: Dateien öffnen
23.04.2006 20:12:07
Jürgen
Hallo Solaiman,
vielen Dank für Deine weiteren Tipps.
Hab noch eine weitere Frage:
In der Bat - Datei steht wie in Deinem Bsp.
copy "C:\Daten\2003\Daten.xls" "C:\Daten\2003\Daten_Juergen_%date%.xls"
Was bedeutet "%date%" das? Ist das bei Dir bloß ein Platzhalter und soll ich anstatt diesem jeder Kopie eine lfd. Nummer geben?
Gruss
Jürgen
AW: Dateien öffnen
23.04.2006 20:36:24
Solaiman
Hallo Jürgen,
nein. %date% gibt das aktuelle Datum zurück. Es dient nur dazu, daß der Dateiname ganz eindeutig ist. Du kannst es behalten oder auch rausschmeißen ...
Gruß
Solaiman
AW: Dateien öffnen
23.04.2006 22:13:07
Jürgen
Hallo Solaiman,
sorry muß Dich nochmals belästigen.
Funktioniert eigentlich sehr gut Dein Vorschlag, nur das mit der Parameterübergabe funktioniert nicht.
Hab mir die Seiten zu Bat Parameter übergeben nachgelesen und komm nicht klar, beim Aufruf einer Bat-Datei wird hier bloß in Anführungszeichen der Gewünschte Parameter mit angehängt, mach ich dieses in meinem Makro bringt es mir sofort eine Fehlermeldung. Muß in VBA irgendwie anders übergeben werden.
Dann hab ich versucht es ohne Bat Dateien zu programmieren, bin aber nicht dahintergekommen wie ich diesen Bat-Code den Du mir erstellt hast auf VBA umkonvertieren kann.
Gruss
Jürgen
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige