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

Excel-Dateien aus Ordner auslesen

Excel-Dateien aus Ordner auslesen
05.11.2014 15:09:57
M.Bacher
Hallo, nach langem habe ich mal wieder eine Frage, die sich auf ein Thema bezieht das auch schon länger her hier im Forum diskutiert wurde (2007).
Hier der Link:
https://www.herber.de/forum/archiv/864to868/867500_Excel_Dateien_aus_Ordner_auslesen.html
Nun hat Josef Ehrenberger eine wunderbare Lösung aufgezeigt, die ich bereits erweitert und an meine Bedürfnisse angepasst habe.
Es gibt nur ein kleines Problem beim einlesen, wo ich leider nicht weiterkomme.
Im Bereich wo das auszulesende Tabellenblatt angesprochen wird:
strTabName = "Tabelle1" 'Name der Tabellenblätter anpassen!
liegt das Problem. Es gibt bei mir Tabellen die "Deckblatt" heißen oder "cover sheet" als englische Version. Wie muss ich das abändern das er beide ohne Nachfrage akzeptiert.
Im VB in der Liste der Tabellen ist "Decklatt" und "cover sheet" immer Tabelle1, nur der Name ist unterschiedlich. Ansprechen mit "Tabelle1" funktioniert nicht. Mit "or" und beide Namen hintereinander gibts einen Bug...
Wer kann mir helfen? Danke!
Mfg Mario Bacher
Hier der Code den Josef bereitgestellt hat:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
Option Explicit
Sub Daten_Lesen()
Dim strPath As String, strFile As String, strTabName As String
Dim lngR As Long
strPath = "F:\Temp\km\" 'Verzeichnis anpassen!
strTabName = "Tabelle1" 'Name der Tabellenblätter anpassen!
strFile = Dir(strPath & "*.xls")
lngR = 1
With ThisWorkbook.Sheets("Tabelle1") 'Name der Ausgabetabelle anpassen!
.Range("A2:B" & Rows.Count).ClearContents
Do Until strFile = ""
lngR = lngR + 1
.Cells(lngR, 1) = strFile
.Cells(lngR, 2).Formula = "=SUM('" & strPath & "[" & strFile & "]" & _
strTabName & "'!$K$7:$K$17)"
.Cells(lngR, 2) = .Cells(lngR, 2).Value
strFile = Dir
Loop
End With
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Excel-Dateien aus Ordner auslesen
05.11.2014 15:32:36
ChrisL
Hallo Mario
Wenn es immer das erste Blatt ist, kannst Du es über den Index (Nummer) ansprechen:
Sub Daten_Lesen()
Dim strPath As String, strFile As String
Dim lngR As Long
strPath = "F:\Temp\km\" 'Verzeichnis anpassen!
strFile = Dir(strPath & "*.xls")
lngR = 1
With ThisWorkbook.Sheets(1)
.Range("A2:B" & Rows.Count).ClearContents
Do Until strFile = ""
lngR = lngR + 1
.Cells(lngR, 1) = strFile
.Cells(lngR, 2).Formula = "=SUM('" & strPath & "[" & strFile & "]" & _
strTabName & "'!$K$7:$K$17)"
.Cells(lngR, 2) = .Cells(lngR, 2).Value
strFile = Dir
Loop
End With
End Sub
cu
Chris

Anzeige
AW: Excel-Dateien aus Ordner auslesen
05.11.2014 15:46:51
M.Bacher
Hallo Chris,
ich glaube jetzt hast Du in Deinem Beispiel das Ansprechen der Quelldateien unter den Tisch fallen lassen und darum geht's ja:
strTabName = "Tabelle1" 'Name der Tabellenblätter anpassen! ist weg... Wo soll er Daten auslesen?
Deine Änderung With ThisWorkbook.Sheets(1) spricht ja die Tabelle an wo es hineingeschrieben werden soll, das passt ja... Mein Problem ist, das ich ja 2 verschiedene Namen der Tabelle1 in den Quelldateien habe.
Mfg M.Bacher

AW: Excel-Dateien aus Ordner auslesen
05.11.2014 16:31:13
ChrisL
Hi Mario
Da war ich etwas zu schnell. Neuer Vorschlag wie folgt:
Sub Abgekuerzt()
Dim strPath As String, strFile As String, strTabName As String
strPath = "F:\Temp\km\" 'Verzeichnis anpassen!
strFile = Dir(strPath & "*.xls")
strTabName = XorY(strPath, strFile)
MsgBox strTabName
End Sub
Private Function XorY(sPfad As String, sDatei As String) As String
On Error GoTo fehler
If ExecuteExcel4Macro("'" & sPfad & "[" & sDatei & "]Deckblatt'!R50000C1") = 0 Then XorY = " _
Deckblatt"
Exit Function
fehler:
XorY = "cover sheet"
End Function
cu
Chris

Anzeige
AW: Excel-Dateien aus Ordner auslesen
05.11.2014 16:47:41
Rudi
Hallo,
teste mal:
Sub Daten_Lesen()
Dim strPath As String, strFile As String, strTabName1 As String, strTabName2 As String
Dim lngR As Long, retVal As Variant
strPath = "F:\Temp\km\" 'Verzeichnis anpassen!
strTabName1 = "Deckblatt" 'Name der Tabellenblätter anpassen!
strTabName2 = "cover sheet"
strFile = Dir(strPath & "*.xls")
lngR = 1
With ThisWorkbook.Sheets("Tabelle1") 'Name der Ausgabetabelle anpassen!
.Range("A2:B" & Rows.Count).ClearContents
Do Until strFile = ""
lngR = lngR + 1
.Cells(lngR, 1) = strFile
retVal = ExecuteExcel4Macro("'" & strPath & "[" & strFile & "]" & strTabName1 & "'!R1C1")
If IsError(retVal) Then
.Cells(lngR, 2).Formula = "=SUM('" & strPath & "[" & strFile & "]" & _
strTabName2 & "'!$K$7:$K$17)"
Else
.Cells(lngR, 2).Formula = "=SUM('" & strPath & "[" & strFile & "]" & _
strTabName1 & "'!$K$7:$K$17)"
End If
.Cells(lngR, 2) = .Cells(lngR, 2).Value
strFile = Dir
Loop
End With
End Sub

Gruß
Rudi

Anzeige
AW: Excel-Dateien aus Ordner auslesen
06.11.2014 08:10:35
M.Bacher
Guten Morgen!
Vielen Dank für die Hilfe, Chris und Rudi.
Nach eingehendem Studium beider Lösungen habe ich Rudi's Vorschlag eingesetzt. Es funktioniert tadellos!! Vielen Dank nochmals dafür.
Gruß Mario

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige