Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
616to620
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
616to620
616to620
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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
Anzeige
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige