AW: Tabellenblattauswahl mit Optionbutton und Comb
07.06.2005 18:31:24
reiner
Hallo Dani,
zunächst vielen Dank für die Mühe die Du Dir gemacht hast. Der Vorschlag kann sicher auch eine Variante zur Lösung des angesprochenen Problems sein, leider entspricht diese Lösung nur teilweise meiner Vorstellung da die angesprochenen Optionsschaltfelder nicht enthalten sind.
Nachstehend habe ich zur Kenntnisnahme den vorhandenen Programmcode eingefügt. Ich denke es wird möglich sein mit wenig Aufwand die an den Optionsschaltfeldern als Jahreszahl ausgewählten Jahrgänge in den Programmcode einzuarbeiten, ich weiß nur leider nicht an welcher Stelle und mit welcher Syntax.
Die vorhandene UserForm enthält: 1. cmdMonat; 2. cboMonat. 3. opt2003 (Optionsschaltfeld 2003, 2004 usw.)
Private Sub cmdMonat_Click()
cboMonat.Visible = False
monArr = Array("Januar", "Februar", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember")
addYear = InputBox("Bitte das Jahr eingeben, für welches Sie die Tabellen anzeigen möchten." & _
"Die Eingabe muss im Format YYYY erfolgen; danach kann ein Monat ausgewählt werden", _
"Jahr wählen", Year(Now()))
On Error Resume Next
If Not IsDate(DateSerial(addYear, 1, 1)) Then
MsgBox "Keine korrekte Jahreszahl", vbInformation + vbOKOnly, "Abbruch"
Exit Sub
End If
Err.Clear
Me.cboMonat.Clear
For i = 1 To Worksheets.Count
getMonth = False
chkTab = False
chkYear = False
chkName = Worksheets(i).Name
For n = 1 To 12
If InStr(1, chkName, monArr(n)) > 0 Then
getMonth = True
Exit For
End If
Next n
If InStr(1, chkName, "Tabelle") = 0 Then
chkTab = True
End If
If InStr(1, chkName, addYear) > 0 Then
chkYear = True
End If
If getMonth = True And chkTab = True And chkYear = True Then
Me.cboMonat.AddItem chkName
End If
Next i
Me.cboMonat.ListIndex = 0 'Leeranzeige unterdrücken
cboMonat.Visible = True
End Sub
Private Sub cboMonat_click()
Worksheets(Me.cboMonat.Text).Select
cboDatensatz.Clear
cboDatensatz.Visible = False
letzteZeile = 0
cmdDatensätze.Enabled = True
cmdDatum.Enabled = True
End Sub
Private Sub Opt2003_Click() [Optionsschaltfeld]
If Opt2003.Value = True Then
chkYear = 2003
End If
cboMonat.Visible = True
End Sub
Private Sub Opt2004_Click() [Optionsschaltfeld]
If Opt2004.Value = True Then
chkYear = 2004
End If
cboMonat.Visible = True
End Sub
Private Sub Opt2005_Click() [Optionsschaltfeld]
If Opt2005.Value = True Then
chkYear = 2005
End If
cboMonat.Visible = True
End Sub
Es wäre schön wenn Du noch einen Vorschlag hättest wie die Jahrgangswahl mit den Optionsschaltfeldern eingearbeitet werden kann.
Gruß Reiner