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

unbekannte Dateiname mit unbekannten Tabellennamen

unbekannte Dateiname mit unbekannten Tabellennamen
Christof
Hi Folks,
ich würde Excel Tabellen auswerten.
Leider ist das Ganze sehr variabel aufgebaut.
Sowohl die Dateinamen als auch die Anzahl der Exceldateien sind unbekannt.
Das gleiche gilt auch für die Tabellenbläter (Anzahl und Namen).
Hat jemand zufällig, für einen solchen Fall, eine Schleife liegen?
Danke euch!
VG
Christof

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: unbekannte Dateiname mit unbekannten Tabellennamen
08.07.2010 09:36:12
Martin
Hallo Christof,
das ist alles kein Problem. Was soll den mit den ganzen Exceldateien aus dem Ordner passieren? Soll sie alle geöffnet werden?
Viele Grüße
Martin
AW: unbekannte Dateiname mit unbekannten Tabellennamen
08.07.2010 10:53:41
Martin
Hallo Christof,
schade, keine Antwort. Also gehe ich einfach mal davon aus, dass die Excel-Dateien alle geöffnet werden sollen. Kopiere den Code in ein normales VBA-Modul und starte anschließend das Makro "XLS_Ordner".
Viele Grüße
Martin

Option Explicit
Dim arr As Variant
Dim sPath As String, sPattern As String
Dim sFile As String
Dim iCounter As Integer
Dim StrNewDir As String
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl  _
As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo  _
As BROWSEINFO) As Long
'Aufruf des Dialogs zur Ordnerauswahl
Function GetDirectory(Optional msg) As String
Dim bInfo As BROWSEINFO
Dim Path As String
Dim r As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0&
If IsMissing(msg) Then bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus." Else bInfo. _
lpszTitle = msg
bInfo.ulFlags = &H1
x = SHBrowseForFolder(bInfo)
Path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal Path)
If r Then
pos = InStr(Path, Chr$(0))
GetDirectory = Left(Path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Function arrAll(sPath As String, sPattern As String) As Variant
Dim arr()
iCounter = 0
If Right(sPath, 1)  "\" Then sPath = sPath & "\"
sFile = Dir(sPath & sPattern)
Do While sFile  ""
iCounter = iCounter + 1
ReDim Preserve arr(1 To iCounter)
arr(iCounter) = sFile
sFile = Dir()
Loop
arrAll = arr
End Function
Sub XLS_Ordner()
ThisWorkbook.Activate
'Hauptprozedur - ruft den Dialog zur Auswahl eines Ordners auf
Cells.ClearContents
StrNewDir = GetDirectory("Verzeichnis mit Excel-Dateien (*.xls) auswählen:")
If StrNewDir = "" Then Exit Sub
If Right(StrNewDir, 1)  "\" Then StrNewDir = StrNewDir & "\"
Application.ScreenUpdating = False
sPath = StrNewDir
sPattern = "*.xls"
arr = arrAll(sPath, sPattern)
For iCounter = 1 To UBound(arr)
Workbooks.Open Filename:=sPath & arr(iCounter), UpdateLinks:=0
Next iCounter
End Sub

Anzeige
AW: unbekannte Dateiname mit unbekannten Tabellennamen
08.07.2010 12:59:19
Christof
Hallo Martin,
ich muss alle Exceldateien nacheinander öffnen und dann alle Tabellen einzeln aufrufen um dann einen bestimmten Bereich zu kopieren.
Dann kann ich meine Auswertung machen.
Also Dateischleife
Dann Tabellenschleife
Bereich kopieren und auswerten
Nächste Tabelle bis alle Tabellen durch sind
Datei schliessen
Nachste Datei bis alle DAteien durch sind
So dachte ich mir das.
VG
Christof
Prinzip-Code
08.07.2010 13:13:00
Rudi
Hallo,
Sub sss()
Dim sfile As String, wkb As Workbook, wks As Worksheet
Const sPfad As String = "c:\Test\" 'anpassen
sfile = Dir(sPfad & "*.xls")
Do While sfile  ""
Set wkb = Workbooks.Open(sPfad & sfile)
For Each wks In wkb.Worksheets
'Auswertung  z.B.
wks.Range("A1:H10").Copy _
ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1)
Next wks
wkb.Close False
sfile = Dir
Loop
End Sub

Gruß
Rudi
Anzeige
AW: Prinzip-Code
09.07.2010 18:31:16
Christof
Ahhh Super, Danke!
LG
Chrsitof

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige