ich komme bei der Erstellung meines Dienstplans nicht weiter und erhoffe mir einen Tip von euch Spezialisten.
Der Dienstplan besteht aus zwei Dateien:
1.) Test.xlsm enthält den Dienstplan und jede Menge Beiwerk zur ausgewählten Organisationseinheit
2.) x99Datenbank.xlsx ist eine "dumme" Tabelle ohne Formatierungen und Makros
Diese Lösung habe ich gewählt, um in einem Behördensystem (!Excel 2010!) :-( "gleichzeitig" mit mehreren Anwendern arbeiten zu können.
Jeder User hat eine Datei 1. Beim Öffnen werden die aktuellen Daten aus der Datei 2 geladen und diese dann wieder geschlossen. Beim Schließen werden eigene Änderungen in die Datei 2 übertragen.
Nun zu meine Problem:
Die Datei 1 enthält 12 Tabellen für die Kalendermonate.
Für den Kopiervorgang von 2 zu 1 muss ich diese 12 Tabellen (tbl_Jan bis tbl_Dez) nacheinander ansprechen und dachte mir mit einem "Select Case" arbeiten zu können.
Das Kopieren funktioniert, wenn ich es so schreibe:
In dieser Zeile wird mit einer For Next Schleife die Personalnummer aus der tbl_Jan (=Tabelle für Januar in Datei 1) in Spalte 1 herausgesucht. Anschließend wird die ID in der Datei 2 gesucht ...
SuchID = Workbooks(p_strFileFront).Worksheets(p_strSheetFront).ListObjects("tbl_Jan").DataBodyRange(i, 1)
Um nicht für alle Monate den Code runterschreiben zu müssen, würde ich nun gern mit Select Case in Kombination mit For Next 1-12 die Tabellen der Monate nacheinander ansprechen.
so:
Dim tbl_MONAT As ListObject, c As Integer
'Monatstabellen durchzählen:
For c = 1 To 12
Select Case (c)
Case 1: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_Jan")
Case 2: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_Feb")
Case 3: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_Maerz")
Case 4: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_April")
Case 5: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_Mai")
Case 6: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_Juni")
Case 7: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_Juli")
Case 8: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_Aug")
Case 9: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_Sept")
Case 10: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_Okt")
Case 11: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_Nov")
Case 12: Set tbl_MONAT = Worksheets(p_strSheetFront).ListObjects("tbl_Dez")
Case Else
End Select
Nun bekomme ich aber in der von oben angepassten Zeile einen Fehler: "Index außerhalb des gültigen Bereichs"
SuchID = Workbooks(p_strFileFront).Worksheets(p_strSheetFront).ListObjects(tbl_MONAT).DataBodyRange(i, 1)
Habt ihr einen Tip für mich, wo mein Fehler liegt? Wie kann ich eine Funktion um meine Kopierfunktion bauen, die mir die Tabellen der einzelnen Monate nacheinander durchläuft?
Ich bedanke mich schon einmal im Voraus für die Mühe.
Schöne Grüße, Berni.