10.6k Aufrufe
Gefragt in Tabellenkalkulation von bigo Einsteiger_in (31 Punkte)
Schönen guten Tag euch allen,
dieses Problem wurde schonmal hier im Forum behandelt aber leider bin ich nicht weiter gekommen....
Ich habe einen Ordner mit einer Menge von unterordnern die nicht nur Excel dateien enthalten.
Aus diesen Excel Dateien die alle mit Form_ anfangen benötige ich nur D20 F28 und D10 eventuell auch eine mehr.
Die inhalte der Zellen sollen dann ein einer Tabelle aufgelistet werden.

Mich würde es sehr freuen wenn ich eine Antwort bekommen würde

Viele Grüße
Bigo

PS: excel 2007

14 Antworten

0 Punkte
Beantwortet von bigo Einsteiger_in (31 Punkte)
ChDir "\\xxxxxxxxxxxxxxxxx\xxxxxxxxxx"
Set objFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set objDateien = objFileSystemObject.getfolder("Halle 50")
Set wksAuswertsheet = ThisWorkbook.Sheets("Auswertung")

etwa so?so klappt es leider nicht, genau das selbe ergebnis wie ohne ChDir anweisung

mfG bigo
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi :-)

coros hatte ja schon eine lösung ausgearbeitet

wollt nur einen tip geben

gruss nighty
0 Punkte
Beantwortet von bigo Einsteiger_in (31 Punkte)
Hallo zusammen,
das Programm ist jetzt etwas komplexer geworden und ich möchte noch einen Hyperlink hinzufügen, wüsste jemand für euch wie ich das mache?

Option Explicit


Dim objFileSystemObject As Object
Dim objDateien As Object
Dim objWeitereDateien As Object
Dim objDatei As Object
Dim lngFirstFreeRow As Long
Dim wksAuswertsheet As Worksheet


'###########################################################################################


'Autostart beim öffnen
Sub Auswertung_start()


'Zelleninhalte löschen
Cells.Select
Selection.ClearContents

'Objektverweise zuweisen
ChDir "\\LINK"
Set objFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set objDateien = objFileSystemObject.getfolder("LINK")
Set wksAuswertsheet = ThisWorkbook.Sheets("Auswertung")
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$F$2"), , xlNo).Name = _
"Tabelle1"
Range("Tabelle1[#All]").Select
ActiveSheet.ListObjects("Tabelle1").TableStyle = "TableStyleMedium2"
Range("Tabelle1[[#Headers],[Spalte1]]").Select
ActiveCell.FormulaR1C1 = "BV-Merkmal"
Range("Tabelle1[[#Headers],[Spalte2]]").Select
ActiveCell.FormulaR1C1 = "Teilfreigabe"
Range("Tabelle1[[#Headers],[Spalte3]]").Select
ActiveCell.FormulaR1C1 = "Zuständigkeiten"
Range("Tabelle1[[#Headers],[Spalte4]]").Select
ActiveCell.FormulaR1C1 = "Anlagenbezeichnung"
Range("Tabelle1[[#Headers],[Spalte5]]").Select
ActiveCell.FormulaR1C1 = "Datum"
Range("Tabelle1[[#Headers],[Spalte6]]").Select
ActiveCell.FormulaR1C1 = "Bemerkung"
Call Dateien_auswerten

'Zuweisung wieder aufheben
Set objFileSystemObject = Nothing
Set objDateien = Nothing
Set wksAuswertsheet = Nothing

'Text aus Statusbar löschen
Application.StatusBar = ""
End Sub
'###########################################################################################

Sub Dateien_auswerten()

Application.ScreenUpdating = False

For Each objDatei In objDateien.Files
If Right(objDatei.Name, 4) = ".xls" Or Right(objDatei.Name, 5) = ".xlsx" _
Or Right(objDatei.Name, 5) = ".xlsm" Then

'erste freie Zelle in der Zieldatei in Spalte A ermitteln
lngFirstFreeRow = wksAuswertsheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

'Meldung in Statusbar anzeigen
Application.StatusBar = "Datei """ & objDatei.Name & """ wird ausgelesen!"
DoEvents

'Gefundene Datei unsichtbar öffnen
GetObject (objDatei)



'Wert aus geöffneter Datei aus dem Tabellenblatt 1 aus Zelle _
D20 in die erste freie Zelle in Spalte A übertragen
wksAuswertsheet.Cells(lngFirstFreeRow, 1) = _
Workbooks(objDatei.Name).Sheets(1).Range("D10")

'Wert aus geöffneter Datei aus dem Tabellenblatt 1 aus Zelle _
D20 in die erste freie Zelle in Spalte A übertragen
wksAuswertsheet.Cells(lngFirstFreeRow, 2) = _
Workbooks(objDatei.Name).Sheets(1).Range("D20")

'Wert aus geöffneter Datei aus dem Tabellenblatt 1 aus Zelle _
D20 in die erste freie Zelle in Spalte A übertragen
wksAuswertsheet.Cells(lngFirstFreeRow, 3) = _
Workbooks(objDatei.Name).Sheets(1).Range("F28")

wksAuswertsheet.Cells(lngFirstFreeRow, 4) = _
Workbooks(objDatei.Name).Sheets(1).Range("D12")

wksAuswertsheet.Cells(lngFirstFreeRow, 5) = _
Workbooks(objDatei.Name).Sheets(1).Range("G24")

'HYPERLINK
wksAuswertsheet.Hyperlinks.Add Anchor:=wksAuswertsheet.Cells(lngFirstFreeRow, 4), _
Address:="LINK" & "LINK" & objDatei.Name


'Geöffnete Datei wieder schließen ohne zu speichern
Workbooks(objDatei.Name).Close SaveChanges:=False

End If
Next

'Nächstes Verzeichnis abfragen
For Each objWeitereDateien In objDateien.subfolders
Set objDateien = objWeitereDateien
Call Dateien_auswerten
Next

End Sub

So funktioniert es leider NICHT, die hyperlinks erscheinen aber beim draufklicken wird die datei nicht geöffnet da ihm ein stück vom Pfad abgeht zwischen Ordner und objDatei.Name

bin dankbar für jeden TIPP

achja den LINK habe ich geteilt, da sonst der DATÉINAME + Pfad zu lang geworden ist.(über 256 Zeichen), kann man aber auch weglassen ändert nicht viel
:)
0 Punkte
Beantwortet von bigo Einsteiger_in (31 Punkte)
Danke hat sich erledigt
...