RAMSES bitte melden
03.06.2005 17:33:51
reiner
der von Dir gestern gelieferte Programmcode funktioniert fast einwandfrei; nach ausgiebigem Test habe ich nämlich noch ein kleines Problem entdeckt.
Wenn ich CommandButton1 drücke und eine Jahreszahl eingebe arbeitet die ComboBox noch normal. Drücke ich CommandButton1 jedoch noch ein zweites oder sogar drittes Mal vervielfacht sich jedes Mal die Anzahl der in ComboBox1 angezeigten Monate. Um es kurz zu sagen, der Programmcode wäre optimal wenn er dahingehend erweitert wird, dass doppelte Einträge unterdrückt werden.
Hier nochmals der bisherige Code:
Private Sub CommandButton1_Click()
Dim i As Integer, n As Byte, addYear As Variant
Dim getMonth As Boolean, chkTab As Boolean, chkYear As Boolean
Dim chkName As String
Dim monArr() As Variant
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", "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
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
'der Name deiner Combobox = Combobox1, sonst anpassen
Me.ComboBox1.AddItem chkName
End If
Next i
End Sub
Ich wäre Dir sehr dankbar wenn Du nochmals helfen könntest.
Gruß Reiner