Re: definiert auslesen von zellennamen
11.01.2003 20:06:22
Steffan
Hallo Andreas,spät kommt Ihr, doch Ihr kommt.........
versuch es mal mit folgendem Code zum Ansprechen der Tabellenblätter:
Sub commandButton1_onclick()
Dim oWbk1 As Workbook 'Deine erste Datei mit dem Datum
Dim oWbk2 As Workbook 'Deine zweite Datei mit KW-Tabellen
Dim datum As Date 'Das Datum
Dim kW as String 'Die zugehörige KW als Text
On Error GoTo Fehler
Set oWbk1 = ActiveWorkbook
Set oWbk2 = Workbooks.Open("DerNameDeinerDatei")
'das Datum steht in Zelle A1
datum = oWbk1.Worksheets("Tabelle1").Range("A1").Value
'Kalenderwoche ausrechnen
kw = cStr(DateDiff("ww", DateSerial(Year(datum), 1, 1), datum, vbMonday) + 1)
'2.Datei aktivieren
oWbk2.activate
'Blatt entsprechend der KW auswählen
Worksheets(kw).Select
'....
'weiterer Code
'....
' ggf. 2.Datei schließen
oWbk2.Close saveChanges:=True
Exit Sub
Fehler:
If Err.Number = -2147221080 Then MsgBox "Kein Datum!", vbCritical : Exit Sub
If Err.Number = 9 Then MsgBox "Kein Blatt für die Kalenderwoche " & kw, vbCritical : Exit Sub
If Err.Number = 1004 Then MsgBox "Datei nicht gefunden!", vbCritical : Exit Sub
Msgbox "Sonstiger Fehler!", vbCritical
End Sub
Die Namen der jeweiligen Tabellenblätter müssen mit den Kalenderwochen übereinstimmen, also "1", "2", "3", ...
Du musst Dir aber im klaren sein, dass bei dieser Lösung ein Umbenennen der Tabellenblätter nicht möglich ist.Deine benannten Bereiche kannst Du mit dem Range-Objekt ansprechen, also z.B. Range("MeinBereich").Value=11.
Sind damit Deine Fragen beantwortet?
Steffan.