In meiner Not muss ich aufgrund mangelnder VBA-Erfahrung leider um eure Hilfe bitten:
Ich schreibe momentan meine Bachelorthesis und stehe dabei vor folgendem Problem. Für eine Altdatenanalyse würde ich gerne aus verschiedenen Excel-Dateien, die sich alle in einem Ordner befinden, bestimmte Zelleinträge aus bestimmten Datenblättern in eine Tabelle kopieren. Wie das aber mit Daten, die von verschiedenen Bearbeitern gepflegt werden, wohl oft der Fall ist, sind einige der Datenblätter leider umbenannt worden. Wäre dies nicht der Fall, so würde mir folgendes Script, das ich aus verschiedenen anderen Recherchen zusammengekratzt habe, weiterhelfen:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************
Option Explicit
Sub Altdatenanalyse()
Dim strPath As String, strFile As String, strTabName As String
Dim lngR As Long
strPath = "D:\Pfad\"
strFile = Dir(strPath & "*.xls")
lngR = 1
With ThisWorkbook.Sheets("Sheet1")
.Range("A2:B" & Rows.Count).ClearContents
Do Until strFile = ""
lngR = lngR + 1
.Cells(lngR, 1) = strFile
.Cells(lngR, 2).Formula = "='" & strPath & "[" & strFile & "]Pr1'!$AO$4"
.Cells(lngR, 2) = .Cells(lngR, 2).Value
strFile = Dir
Loop
End With
End Sub
Leider ist sind einige Datenblätter von "Pr1" in andere Dateinamen umbenannt worden, daher bleibt das Script immer hängen sobald kein Datenblatt "Pr1" gefunden wird. Mittlerweile habe ich die Referenzierung über Code Name oder Index Nummer kennengelernt, habe aber leider nicht genug Erfahrung um zu wissen, wie ich diese syntaktisch korrekt in obiges Script einbauen könnte. (Die CodeNamen der betroffenen Datenblätter in jeder Datei sind "Tabelle 12, ...15,16,17,18,19,20,21,22,24", die Index-Nummern 5-14. (Hoffentlich in allen Dateien, in den von mir geprüften hat es gestimmt)
Da es sich um einige Hundert Dateien handelt, wäre es super wenn es eine Lösung für mein Problem gibt. Kennt einer von euch die richtige Nutzung von bevorzugt dem Code Namen in diesem Zusammenhang? Ich hoffe dass alle benötigten Daten/Informationen vorhanden sind.
Freundliche Grüße und Danke,
Daniel