Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

RAMSES bitte melden

Forumthread: RAMSES bitte melden

RAMSES bitte melden
03.06.2005 17:33:51
reiner
Hallo Ramses,
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
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: RAMSES bitte melden
03.06.2005 18:19:51
Ramses
Hallo
Eine Zeile zusätzlich :-)
Option Explicit

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
'Leert die Combobox
Me.ComboBox1.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

Gruss Rainer
Anzeige
Funktioniert leider nicht
03.06.2005 19:35:17
reiner
Hallo Ramses,
mit dem vorgeschlagenen zusätzlichen Eintrag „Me.ComboBox1.Clear“ funktioniert es zwar, aber nur solange ich nicht einen Eintrag in der ComboBox anwähle.
Sowie ich eine Eintrag wähle und danach eine andere Jahreszahl eingeben will erscheint die Fehlermeldung „Laufzeitfehler 9“, „Index außerhalb des gültigen Bereichs“.
Wie lässt sich die Fehlermeldung verweiden?
Gruß Reiner
Anzeige
Change-Ereignis ändern
04.06.2005 09:35:53
Ramses
Hallo
Löschen den Code mit dem Change-Ereignis in der Combobox un setze den dafür ein

Private Sub ComboBox1_click()
Worksheets(Me.ComboBox1.Text).Select
End Sub

Gruss Rainer
AW: Change-Ereignis ändern
04.06.2005 18:40:24
reiner
Hallo Ramses,
nun ist mein Problem gelöst, vielen Dank für die Unterstützung
Gruß reiner
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige