Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Daten aus geschlossenen Excel Dateien auslesen.

Frage Microsoft Microsoft Office

Mitglied: kufprivat

kufprivat (Level 1) - Jetzt verbinden

05.07.2013, aktualisiert 23.11.2015, 6171 Aufrufe, 5 Kommentare

Hallo,

ich habe ein Problem, bei dem ich gern Hilfe annehmen würde.

In dem Verzeichnis "20130628" sind mehrere Hundert Unterordner . In jedem dieser Unterordner befindet sich eine Excel Datei mit dem Namen "Info.xls".
In allen diesen Excel Dateien befindet sich in der Zelle "B20" ein Wert, den ich auslesen und in der separaten Datei "Auswertung.xls" untereinander anzeigen lassen möchte.

Die Namen der Unterordner lauten wie folgt:
28.06_1997 (1)
28.06_1997 (2)
28.06_1997 (3)
28.06_1997 (4)
.....
.....
28.06_1997 (499)
28.06_1997 (500)


Wie kann ich dieses am besten anstellen. Ich komme da einfach nicht weiter.

Vorab vielen Dank für eure Mühe

Kai
Mitglied: bastla
LÖSUNG 05.07.2013, aktualisiert 23.11.2015
Hallo kufprivat und willkommen im Forum!

Das könnte etwa so gehen (als Makro in der "Auswertung.xls"):
01.
Sub WerteHolen() 
02.
 
03.
' Quelle 
04.
Ordner = "D:\20130628" 
05.
Datei = "Info.xls" 
06.
Zelle = "B20" 
07.
 
08.
' Ziel 
09.
Spalte = "A" 
10.
AbZeile = 2 
11.
 
12.
Set Ziel = ThisWorkbook.ActiveSheet 
13.
Zeile = AbZeile 
14.
 
15.
Set fso = CreateObject("Scripting.FileSystemObject") 
16.
For Each Folder In fso.GetFolder(Ordner).SubFolders 'alle Unterordner durchgehen 
17.
    Pfad = Folder.Path & "\" & Datei 'vollständigen Dateipfad erstellen 
18.
    If fso.FileExists(Pfad) Then ' wenn Datei gefunden ... 
19.
        Set Quelle = Workbooks.Open(Pfad) '... diese öffnen ... 
20.
        '... Wert auslesen und übertragen 
21.
        Ziel.Cells(Zeile, Spalte) = Quelle.Worksheets(1).Range(Zelle).Value 
22.
        Quelle.Close '... und Datei wieder schließen 
23.
         
24.
        Zeile = Zeile + 1 'nächste Zeile in der Zieldatei 
25.
    End If 
26.
Next 
27.
MsgBox "Fertig." 
28.
End Sub
Vorab wäre noch die entsprechende Zeile der Zieltabelle zu löschen ...

Grüße
bastla
Bitte warten ..
Mitglied: kufprivat
06.07.2013, aktualisiert um 09:18 Uhr
Hallo bastla,

das funktioniert SUUUPER.

Vielen, vielen Dank.


Könnte man das noch etwas verfeinern, in dem man den Pfad für die Unterordner aus der "Auswertung.xls" ausließt?

Erläuterung:
da sich die Pfade zum Auslesen der Dateien laufend ändern, würde ich den aktuellen Pfad gern in der "Auswertung.xls" in der Zelle "A1" angeben und das Makro holt sich die Pfadangabe dann aus der Zelle "A1".
Ich kann dieses aber leider nicht selber realisieren und würde mich freuen, wenn ihr mir dabei nochmals helfen könntet.

Danke und Gruß
Kai
Bitte warten ..
Mitglied: bastla
LÖSUNG 06.07.2013, aktualisiert 23.11.2015
Hallo kufprivat!

Ändere die Zeile 4 auf
Ordner = Range("A1").Value
Grüße
bastla
Bitte warten ..
Mitglied: kufprivat
06.07.2013 um 11:28 Uhr
Vielen Dank bastla ... ihr seid die Größten.
Bitte warten ..
Mitglied: kufprivat
23.11.2015 um 19:57 Uhr
Hallo hier bin ich nochmals zum selben Thema.
der Code läuft immer noch super, aber ich müsste nun gern folgendes ändern:
- die auzulesenen Dateinamen sind immer noch im selben Unterordner aber haben jetzt unterschiedliche Dateinamen. Kann ich in Zeile 05 des Codes "*.xls" schreiben, damit alle Excel Dateien in diesem Unterordner ausgelesen werden???

- Ich möchte nun aus mehreren Zellen Daten auslesen. Und zwar aus: B20, C20, D20 und E17. Die dort enthaltenen Daten sollen wieder in die Datei "Auswertung.xls" (Tabelle1) aber nun in die Zellen B2, C2, D2 und E2 geschrieben werden.

Ich hoffe ihr könnt mir wieder weiterhelfen und verbleibe freundlichst
Kai
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...