var files = getFiles( "C:/com" , 0 );
var i = 0;
var out = [];
files = files[1];
for( i = 0; i < files.length; i++ )
{
out.push( files[i].path );
}
WScript.Echo( out.join("\r\n") );
//-----------------------------------------------------------------------------------
//-- returns an array: [ array of folder objects, array of file objects ]
//-- n = 0001 (1): no folders
//-- n = 0010 (2): no files
//-- n = 0100 (4): no subfolders
//-----------------------------------------------------------------------------------
function getFiles( startfolder, n )
{
if( !n ) n = 0;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var folders = new Array();
var files = new Array();
if( !fso.FolderExists( startfolder ) )
{
msg("Folder " + startfolder + " not found!");
return [ [],[] ];
}
getNext( startfolder );
return [ folders, files ];
function getNext( fld )
{
var folderObj = fso.getFolder( fld );
var filesEn, foldersEn;
if( (n & 2) == 0 )
{
filesEn = new Enumerator( folderObj.Files );
for (; !filesEn.atEnd(); filesEn.moveNext()) files.push( filesEn.item() );
}
if( (n & 1) == 0 )
{
folders.push( folderObj );
}
if( (n & 4) == 0 )
{
foldersEn = new Enumerator( folderObj.SubFolders );
for (; !foldersEn.atEnd(); foldersEn.moveNext()) getNext( foldersEn.item().path );
}
}
}
'*********************************************************************************************
'* *
'* Projektierung und Realisierung *
'* durch *
'* Oliver Scheckelhoff *
'* http://www.excelbeispiele.de *
'* info@excelbeispiele.de *
'* *
'* *
'* ####### #### #### ######## ####### ### *
'* ######## #### #### ######### ######## ### *
'* ### #### #### ### ### ### *
'* ######## ####### ## ######## ### *
'* ######## ####### ## ######## ### *
'* ### #### ###### ### ### ### *
'* ######## #### #### ######### ######## ######## *
'* ####### #### ####### ######## ####### ####### beispiele.de *
'* *
'* © 2007 Copyright Oliver Scheckelhoff, Alle Rechte vorbehalten *
'* *
'* Diese Datei unterliegt dem Urhebergesetz und ist somit Eigentum von *
'* Oliver Scheckelhoff *
'* *
'* Jegliches Verändern der Datei oder des VBA-Codes ist strengstens verboten. *
'* Zuwiderhandlung wird strafrechtlich verfolgt *
'* *
'*********************************************************************************************
Option Explicit
Dim Obj As Object
Dim Dateien As Object
Dim Durchläufe As Object
Dim Dateityp As Object
Sub Auflistung_start()
Dim strPfad As String
Dim i As Integer
'Pfad auswählen
strPfad = GetDirectory("Bitte Ordner auswählen") & "\"
'Wenn kein Pfad ausgewählt, Prozdur beenden
If strPfad = "\" Or strPfad = "" Then Exit Sub
'Falls Backslash feht, diesen anhängen
If Len(strPfad) = 4 Then strPfad = Mid(strPfad, 1, 3)
On Error GoTo Ende
'For/ Next-Schleife zum Prüfen ob Bltt "Auswertung bereits existiert
For i = 1 To Worksheets.Count
'Wenn durch die Schleife abgefragter Blattname gleich "Auflistung", dann...
If Sheets(i).Name = "Auflistung" Then
'... Meldungen deaktivieren
Application.DisplayAlerts = False
'Blatt "Auflistung" löschen und...
Sheets(i).Delete
'... Meldungen wieder aktivieren und...
Application.DisplayAlerts = True
'...Schleife beenden
Exit For
End If
Next
'Neues Tabellenblatt mit dem Namen "Auflistung" erstellen
With Worksheets.Add
.Name = "Auflistung"
End With
'Verweis Obj setzen
Set Obj = CreateObject("Scripting.FileSystemObject")
'Verweis Dateien setzen
Set Dateien = Obj.getfolder(strPfad)
'Makro Auflistung ausführen
Call Auflistung
Ende:
End Sub
Sub Auflistung()
Dim i As Integer
'Bildschirmaktualisierung deaktivieren
Application.ScreenUpdating = False
'Schleife zum Durchlaufen des ausgewählten Verzeichnisses
For Each Dateityp In Dateien.Files
If Right(Dateityp.Name, 4) = "ma.xls" Then _
'**********
'**********
'**********Hier möchte ich nicht die Hyperlinks sondern den Inhalt
'**********des Bereichs A1-B3 aller ma.xls Dateien aufgelistet haben!!!!
Workbooks.Open "Dateityp.files"
Range(A1, [B3]).Copy
Workbooks.Close
'**********
'**********
'**********
End If
Next
'Schleife um Unterverzeichnisse durchzulaufen
For Each Durchläufe In Dateien.subfolders
Set Dateien = Durchläufe
Call Auflistung
Next
Sheets("Auflistung").Columns("A:A").EntireColumn.AutoFit
End Sub
Option Explicit
Dim Obj As Object
Dim Dateien As Object
Dim Durchläufe As Object
Dim Dateityp As Object
Sub Auflistung_start()
Dim strPfad As String
Dim i As Integer
'Pfad auswählen
strPfad = GetDirectory("Bitte Ordner auswählen") & "\"
'Wenn kein Pfad ausgewählt, Prozdur beenden
If strPfad = "\" Or strPfad = "" Then Exit Sub
'Falls Backslash feht, diesen anhängen
If Len(strPfad) = 4 Then strPfad = Mid(strPfad, 1, 3)
On Error GoTo Ende
'For/ Next-Schleife zum Prüfen ob Bltt "Auswertung bereits existiert
For i = 1 To Worksheets.Count
'Wenn durch die Schleife abgefragter Blattname gleich "Auflistung", dann...
If Sheets(i).Name = "Auflistung" Then
'... Meldungen deaktivieren
Application.DisplayAlerts = False
'Blatt "Auflistung" löschen und...
Sheets(i).Delete
'... Meldungen wieder aktivieren und...
Application.DisplayAlerts = True
'...Schleife beenden
Exit For
End If
Next
'Neues Tabellenblatt mit dem Namen "Auflistung" erstellen
With Worksheets.Add
.Name = "Auflistung"
End With
'Verweis Obj setzen
Set Obj = CreateObject("Scripting.FileSystemObject")
'Verweis Dateien setzen
Set Dateien = Obj.getfolder(strPfad)
'Makro Auflistung ausführen
Call Auflistung
Ende:
End Sub
Sub Auflistung()
Dim i As Integer
Dim intFirstRow As Integer
'Bildschirmaktualisierung deaktivieren
Application.ScreenUpdating = False
'Schleife zum Durchlaufen des ausgewählten Verzeichnisses
For Each Dateityp In Dateien.Files
If Dateityp.Name = "ma.xls" Then _
'erste freie Zeile in Zieldatei ermitteln
intFirstRow = ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Offset(1, 0).Row
'gefundene Quelldatei im Hintergrund öffnen
GetObject (Dateityp)
'Bereich in Quelldatei kopieren
Workbooks("ma.xls").Sheets(1).Range("A1:B3").Copy
'Daten in Zieldatei einfügen
ThisWorkbook.Sheets("Auflistung").Cells(intFirstRow, 1).PasteSpecial
'Quelldatei schließen
Workbooks("ma.xls").Close
End If
Next
'Schleife um Unterverzeichnisse durchzulaufen
For Each Durchläufe In Dateien.subfolders
Set Dateien = Durchläufe
Call Auflistung
Next
Sheets("Auflistung").Columns("A:A").EntireColumn.AutoFit
End SubWorkbooks("Eurokalk.XLS").Sheets(1).Range("E2:F2").Formula = "=Sum(E2:F2)".CopyWith Workbooks("ma.xls").Sheets(1)
ThisWorkbook.Sheets("Auflistung").Range("A1") = _
((.Range("F16") - .Range("F317")) / Application.WorksheetFunction.Sum(.Range("F312:F315"))) * 100
End With
Daten von verschiedenen Exceldateien in ein Hauptdokument importieren
garotinho 07.01.2008 - 44 Hits - 3 Antworten
Auswertung von Daten nach gleichen Werten innerhalb von Zeiten
tannex 26.02.2008 - 23 Hits - 1 Antwort
Aus einer gesamtliste Namen Filtern un durch bestimmte Kriterien in neue Tabelle einfügen
Pede87 05.03.2008 - 27 Hits - 19 Antworten
Daten in richtige zeile einfügen
Weiss_nix 27.07.2008 - 54 Hits - 5 Antworten
Namen eines Tabellenblattes automatisch in eine Formel einfügen.
MoDAPF 13.03.2009 - 258 Hits - 9 Antworten