VBA
15.06.2020 12:24:20
Karl
Mit dem unten angeführten Code lese ich aus mehreren Excel Dateien Werte aus.
Beim Öffnen der Datei werden die Werte immer aus dem Active sheet ausgelesen. Wenn jetzt ein falscher sheet in der Tabelle aktiv ist werden falsche Werte ausgelesen.
Wie kann ich ein bestimmtes Tabellenblatt ansprechen? in meinem Fall Tabelle1 (Übersicht)
Ich komm einfach nicht drauf.
Danke für eure Hilfe
Charly
Sub GetData()
Set oMe = ThisWorkbook.ActiveSheet 'ZielDatei/-Tabelle (= die aktuelle Tabelle der aktuellen _
Datei)
Const sDateiPfad As String = "C:\DK Test\" 'Pfad für zu durchsuchende Excel-Dateien; mit _
Backslash am Ende
sZelle1 = "B5" 'NOx 1. Temp.
sZelle2 = "B4" 'NOx 1. K-Wert.
sZelle3 = "C5" 'NOx 2. Temp.
sZelle4 = "C4" 'Nox 2. K-Wert.
sZelle5 = "D5" 'SOx 1. Temp.
sZelle6 = "D4" 'SOx 1. ETA
sZelle7 = "E5" 'SOx 2. Temp.
sZelle8 = "E4" 'SOx 2. ETA
sZelle9 = "F4" 'Porenvolumen.
sZelle10 = "G4" 'Abrieb
sZelle11 = "H4" 'BET
sZelle12 = "I4" 'Druckprüfung long.
sZelle13 = "J4" 'Druckprüfung trans.
sZelle14 = "K4" 'Vanadium ist
sZelle15 = "G2" 'Vanadium soll
sZelle16 = "A1" 'Auftragsnummer+Name
iZeile = 4 'ab Zeile 4 in Zieltabelle eintragen
iSpalte = 1 'ab Spalte A in Zieltabelle eintragen
Set oFS = CreateObject("Scripting.FileSystemObject")
For Each oDatei In oFS.GetFolder(sDateiPfad).Files
sWbName = oDatei.Name
If Left(LCase(oFS.GetExtensionName(sWbName)), 3) = "xls" Then
Workbooks.Open (sDateiPfad & sWbName)
oMe.Cells(iZeile, iSpalte).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle1).Value
oMe.Cells(iZeile, iSpalte + 1).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle2). _
Value
oMe.Cells(iZeile, iSpalte + 2).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle3). _
Value
oMe.Cells(iZeile, iSpalte + 3).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle4). _
Value
oMe.Cells(iZeile, iSpalte + 4).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle5). _
Value
oMe.Cells(iZeile, iSpalte + 5).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle6). _
Value
oMe.Cells(iZeile, iSpalte + 6).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle7). _
Value
oMe.Cells(iZeile, iSpalte + 7).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle8). _
Value
oMe.Cells(iZeile, iSpalte + 8).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle9). _
Value
oMe.Cells(iZeile, iSpalte + 9).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle10). _
Value
oMe.Cells(iZeile, iSpalte + 10).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle11). _
Value
oMe.Cells(iZeile, iSpalte + 11).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle12). _
Value
oMe.Cells(iZeile, iSpalte + 12).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle13). _
Value
oMe.Cells(iZeile, iSpalte + 13).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle14). _
Value
oMe.Cells(iZeile, iSpalte + 14).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle15). _
Value
oMe.Cells(iZeile, iSpalte + 15).Value = Workbooks(sWbName).ActiveSheet.Range(sZelle16). _
Value
Workbooks(sWbName).Saved = True
Workbooks(sWbName).Close
iZeile = iZeile + 1
End If
Next
End Sub