Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
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

Unterordner mit xls und xlsx

Unterordner mit xls und xlsx
Peter
Hallo!
Ich habe einen Ordner mit einigen Unterordnern. In meiner übergeordneten Arbeitsmappe ist eine Liste (also Zellen mit Inhalt). Diese Liste enthält die Namen (ohne xls oder xlsx) der xls/xlsx-Mappen, die irgendwo in den Unterordnern liegen, der genaue Aufenthaltsort dieser Dateien ist also nicht klar.
Ich würde gerne Inhalte aus verschiedenen Zellen dieser xls/xlsx-Mappen (meinetwegen Zelle B10, C10, D10) neben die Zellen mit dem (A10 usw.) in der übergeordneten Arbeitsmappe schreiben, per Knopfdruck.
Schwierigkeiten sind:
- es ist nicht bekannt, ob das Format der untergeordneten Mappen xls oder xlsx ist, kann also beides sein
- diese Mappen (und deren Blätter) sind gescjlossen und passwortgeschützt, die einzelnen Zellen jedoch nicht gesperrt
Ich habe noch nie auf eine (geschlossene) Excel-Datei zugegriffen. Kann mir jemand sagen, wie das geht?
Besten Dank im Voraus
P

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Unterordner mit xls und xlsx
09.08.2010 19:07:15
fcs
Hallo Peter,
die Daten kann man per Makro aus den Dateien einlesen, indem man sie kurzzeitig schreibgeschützt öffnet.
Bei per Passwort geschützen Excel-Arbeitsmappen muss das Kennwort beim Öffnen mit übergeben werden.
Wenn es bei allen Identisch ist, dann ist Eingabe nur einmal erforderlich.
Die Makros in der hochgeladenen Textdatei kannst du in einem allgemeinen Modul deiner Datei speichern oder in einem Modul deiner Persönlichen Makroarbeitsmappe. Die 1. Zeile mit einem Dateinamen, die Spalte(n) des Altdatenbereichs und die Codezeilen in denen die Zellen ausgelesen werden muss du ggf. anpassen/ergänzen.
Beim Start des Makros "Daten_Auslesen" muss das Tabellenblatt mit der Liste der Dateinamen das aktive Blatt sein.
Gruß
Franz
https://www.herber.de/bbs/user/70987.txt
Anzeige
AW: Unterordner mit xls und xlsx
10.08.2010 15:15:20
Peter
Franz,
das ist sehr geil! Vielen Dank!
Im ersten Ansatz funktioniert es, wenn alles so richtig betitelt ist, wie es sein sollte.
Dennoch muss ich nachhaken:
- wenn ein Fehler auftritt, kommt die Sanduhr und man muss Excel vollends schließen, ich habe nicht gefunden, warum das so ist
- ich arbeite gerne mit Zellen mit definierten Namen; wenn ein Name in einer xls-Datei nicht vorkommt, kommt es zum Fehler, die weitere Auflistung wird abgebrochen, kann man das fortführen trotz des Fehlers?
- um alles zu verstehen...was macht das genau:
If Not Modus Then lngCalc = .Calculation
If Modus And lngCalc = 0 Then lngCalc = -4105
.Calculation = IIf(Modus, lngCalc, -4135)
.Cursor = IIf(Modus, -4143, 2)
P
Anzeige
AW: Unterordner mit xls und xlsx
10.08.2010 20:48:12
fcs
Hallo Peter,
ich hab zum Schluss nur noch mit Dateien getestet bei denen keine Fehler mehr auftraten. Hauptproblem war, das ggf. falsche Passwort im Ablauf in den Griff zu kriegen.
Da hab ich in der Fehlerbehandlung vergessen das Zurücksetzen des GMS einzubauen.
Die Fehlerbehandlung kann man noch entsprechend verfeinern, so dass z.B. Zellen mit Namen nicht zum Abbruch des Makros führen, sondern mit der Folgezeile weiter verfahren wird.
Ich hab die Hauptprozedur jetzt mal entsprechend modifiziert. Wird ein Bereichsname nicht gefunden,dann wird "#Fehler#" in der Liste eingetragen
https://www.herber.de/bbs/user/71012.txt
Mit den Anpassungen sollte jetzt jeder Fehler mit einer Nr. gemeldet werden oder automatisch weiter der Code ausgeführt werden. Sollen weitere Fehler "umgangen" werden, müssen die entsprechenden Case-Anweisungen ergänzt werden.
Die Prozedur GMS ändert bestimmte Einstellungen, um die Makroausführung zu beschleunigen.
1. Bildschirmaktualisierung (ScreenUpDating) wird deaktiviert
2. Starten von Ereignismakros (EnableEvents) wird deaktiviert
3. Berechnungsmodus im Blatt (Calculation) wird auf manuell gesetzt
4. Anzeige von Warnmeldungen (DisplayAlerts) wird deaktiviert
5. ESC-Taste zum Makroabruch (EnableCancelKey) wird deaktiviert
Die Umschaltung des Cursors während der Makro-Ausführung ist ein optischer Hinweis, dass in Excel Hintergrundaktivitäten laufen.
Der Berechnungsmodus hat 3 Stati (Manuell, Automatisch und Halbautomatisch). Deshalb muss der aktuelle Status in einer Variablen gespeichert werden, um ihn am Ende wieder auf den alten Wert zurückzusetzen. In Verbindug mit dem zu setzenden Modus gibt es den etwas komplizierten 3-Zeiler.
Hauptgeschwindigkeitsbringer sind die Bildschirmaktualisierung und in Blättern mit vielen/komplexen Formeln der Berechnungsmodus.
Durch das deaktivieren der Ereignismakros verhindert man die ggf. unnötige (zeitfressende) oder auch unerwünschte/störende Ausführung von Ereignismakros - z.B. Worksheet_Change, Worksheet_Calculation.
Gruß
Franz
Anzeige
AW: Unterordner mit xls und xlsx
11.08.2010 16:48:59
Peter
Sehr schön!!!
Es funktioniert alles wie du das beschrieben hast. Und ich bin ob der Ausführlichkeit und der Hilfestellung sehr überrascht und freue mich darüber. Besten Dank nochmal!
Eine Kleinigkeit noch:
If Not wbQuelle Is Nothing Then wbQuelle.Close savechanges:=False
Das funktioniert nicht. Da gibt er mir einen Fehler namens "Automatisierungsfehler" mit einer abstrusen Nummer. Ich habe das mal ausgeblendet, damit ich den Rest prüfen konnte.
Tatsächlich ist zu dem Zeitpunkt wbQuelle auch leer nach meiner Prüfung. Dennoch springt er da rein und kreidet den Schluss der Zeile als fehlerhaft an (wbQuelle.Close savechanges:=False). Ist das wbQuelle schon zu zu dem Zeitpunkt? Ich meine schon. Dann würde das keinen Sinn machen.
Zu der GMS-Prozedur....
Das kenne ich und mache es in der Regel genauso, allerdings nur einen Teil davon (screenupdating, enableevents, displayalerts). Das mit dem Cursor ist ne gute Idee. Aber das mit den Berechnungsmodi habe ich nicht verstanden (also die Programmierung), ich weiß, dass es da bei den Excel-Optionen eine Einstellung gibt, die ich aber nich gebraucht habe.
Sorry wegen der verzögerten Antworten, aber zum einen hänge ich nicht ständig vorm Rechner bzw. vor Excel und zum anderen muss ich dass immer erst ausprobieren und für meine Zwecke zurechtbiegen.
P
Anzeige
AW: Unterordner mit xls und xlsx
11.08.2010 23:11:42
fcs
Hallo Peter,
Eine Kleinigkeit noch:
If Not wbQuelle Is Nothing Then wbQuelle.Close savechanges:=False
Das funktioniert nicht. Da gibt er mir einen Fehler namens "Automatisierungsfehler" mit einer abstrusen Nummer. Ich habe das mal ausgeblendet, damit ich den Rest prüfen konnte.

Im Normalfall ist die Quelldatei geschlossen, wenn das Makro an dieser Stelle ankommt.
Nur wenn ein Fehler auftritt kann es sein, dass die Quelldatei noch offen ist. Da wollte ich an dieser Stelle noch aufräumen. Bei mir gibt es keine Probleme.
Gruß
Franz
AW: Unterordner mit xls und xlsx
12.08.2010 09:54:39
Peter
Ne, definitiv ein Fehler!!
Laufzeitfehler -2147221080
Automatisierungsfehler
So stehts im Debug-Fenster.
Ich habe es nun so gelöst, dass bei keinem Fehler das Sub beendet wird, heißt:
Fehler:
With Err
Select Case .Number
Case 0 'kein Fehler
Exit Sub --------------neu
Case 1004
..........
So springt er raus und gibt mir auch keinen Fehler mehr.
Besten Dank für alles, funktioniert prima!!!
P
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige