Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
788to792
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
788to792
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wo ist der verdammte Fehler??

Wo ist der verdammte Fehler?
10.08.2006 20:06:23
Timo
Die Procedure "ComboBoxMonat_Change" führt reproduzierbar zum kompletten Abstürz von Excel (Excel hat Fehler verursacht und wird geschlossen..).
Es werden eigentlich nur Labels ein- bzw. ausgeblendet. Schrittweise im Debugger klappt alles, wird das Formular jedoch normal ausgeführt und dann die ComboBox geändert, stürzt Excel ab...
ich bin echt mit meinem latein an ende...

Private Sub UserForm_Initialize()
Monate = Array("Januar", "Februar", "März", "April", "Mai", "Juni", _
"Juli", "August", "September", "Oktober", "November", "Dezember")
ComboBoxMonat.List = Monate
End Sub


Private Sub ComboBoxMonat_Change()
Dim Index2 as Integer
Index2 = ComboBoxMonat.ListIndex
''''' Tage Ein- bzw. ausblenden, je nach Tagen pro Monat'''''
Select Case Index2
Case 0
Monat = 1
Tagemax = 31
Label122.Visible = True: Label123.Visible = True: Label124.Visible = True
Label29.Visible = True:  Label30.Visible = True:  Label31.Visible = True
Label60.Visible = True:  Label61.Visible = True:  Label62.Visible = True
Label91.Visible = True:  Label92.Visible = True:  Label93.Visible = True
Label153.Visible = True: Label154.Visible = True: Label155.Visible = True
Label494.Visible = True: Label495.Visible = True: Label496.Visible = True
Label215.Visible = True: Label216.Visible = True: Label217.Visible = True
Label246.Visible = True: Label247.Visible = True: Label248.Visible = True
Label277.Visible = True: Label278.Visible = True: Label279.Visible = True
Label308.Visible = True: Label309.Visible = True: Label310.Visible = True
Label339.Visible = True: Label340.Visible = True: Label341.Visible = True
Label370.Visible = True: Label371.Visible = True: Label372.Visible = True
Label401.Visible = True: Label402.Visible = True: Label403.Visible = True
Label432.Visible = True: Label433.Visible = True: Label434.Visible = True
Label463.Visible = True: Label464.Visible = True: Label465.Visible = True
Case 1
Monat = 2
Tagemax = 28
Label122.Visible = False: Label123.Visible = False: Label124.Visible = False
Label29.Visible = False:  Label30.Visible = False:  Label31.Visible = False
Label60.Visible = False:  Label61.Visible = False:  Label62.Visible = False
Label91.Visible = False:  Label92.Visible = False:  Label93.Visible = False
Label153.Visible = False: Label154.Visible = False: Label155.Visible = False
Label494.Visible = False: Label495.Visible = False: Label496.Visible = False
Label215.Visible = False: Label216.Visible = False: Label217.Visible = False
Label246.Visible = False: Label247.Visible = False: Label248.Visible = False
Label277.Visible = False: Label278.Visible = False: Label279.Visible = False
Label308.Visible = False: Label309.Visible = False: Label310.Visible = False
Label339.Visible = False: Label340.Visible = False: Label341.Visible = False
Label370.Visible = False: Label371.Visible = False: Label372.Visible = False
Label401.Visible = False: Label402.Visible = False: Label403.Visible = False
Label432.Visible = False: Label433.Visible = False: Label434.Visible = False
Label463.Visible = False: Label464.Visible = False: Label465.Visible = False
' Case 2
' entsprechend den obigen Case-Anweisungen, für die Monate 2-11
End Select
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wo ist der verdammte Fehler?
10.08.2006 21:24:43
Uduuh
Hallo,
das sieht mir nach extrem viel überflüssigem Code aus.
Monat kannst du mit Monat =Index2+1 berechnen
Dem zur Folge für die Ausblendung:
Monat=Index2+1
Tagemax=day(dateserial(Jahr,monat+1,0)
Select Case Monat
Case 1,3,5,7,8,10,12
'Label ausblenden
case 2
'Label ausblenden
Case else
'Label ausblenden
end select
Gruß aus’m Pott
Udo

AW: Wo ist der verdammte Fehler?
11.08.2006 00:17:14
Markus
Hallo Timo,
also bei der Zahlenvergabe deiner Labels würde ich sagen, dass du etliche davon hast.
Sollten diese nur ein/ausgeblendet werden, dann berücksichtige Udo's Vorschlag.
Ich würde die Labels nicht ein/ausblenden, sondern neu generieren und beim Schliessen der Mappe wieder löschen.
Ich schätze, die Mappe ist anschliessend nur noch ¼ oder weniger gross. Das mag Excel sehr gerne.
Ich denke, für das Generieren kannst du eine For-Next-Schleife laufen lassen.
Genauer kann dir allerdings nur dann jemand helfen, wenn du die Mappe zumindest auszugsweise hochlädtst.
Gruss
Markus
Anzeige
AW: Wo ist der verdammte Fehler?
11.08.2006 23:47:06
Gerd
Hallo Timo,
Teststellung: eine Userform1 mit Combobox1 und Labeln 1 - 8 .
Ins Userform-Modul:
Option Explicit
Dim Tagemax As Integer
Dim cboMonat As Integer

Private Sub UserForm_Initialize()
Dim varMonate As Variant
varMonate = Array("Januar", "Februar", "März", "April", "Mai", "Juni", _
"Juli", "August", "September", "Oktober", "November", "Dezember")
ComboBox1.List = varMonate
End Sub


Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then Exit Sub
cboMonat = ComboBox1.ListIndex + 1
Tagemax = Day(DateSerial(Year(Date), cboMonat + 1, 1) - 1)
Call Labels_Sichtbar_Unsichtbar(Tagemax)
End Sub

In ein Standarmodul:
Sub Labels_Sichtbar_Unsichtbar(Tagemax)
Dim varLabelnummer As Variant
Dim i As Integer
varLabelnummer = Array(1, 2, 3, 4, 5, 6, 7, 8)
On Error GoTo errorhandler
For i = LBound(varLabelnummer) To UBound(varLabelnummer)
With UserForm1.Controls("Label" & varLabelnummer(i))
Select Case Tagemax
Case 28
.Enabled = False
Case 29
Select Case varLabelnummer(i)
Case 1, 2, 3, 4, 5, 6
.Enabled = True
Case 7, 8
.Enabled = False
End Select
Case 30
Select Case varLabelnummer(i)
Case 1, 2
.Enabled = True
Case 3, 4, 5, 6, 7, 8
.Enabled = False
End Select
Case 31
.Enabled = True
End Select
.Visible = .Enabled
End With
Next
errorhandler:
If Err.Number 0 Then
MsgBox "Label" & varLabelnummer(i) & vbCrLf & Err.Description & vbCrLf & Err.Number
Stop
End If
End Sub
Dieser Code läuft bei mir problemlos.
Probiers mal aus u. passe es für dich an.
Ach ja, der verdammte Fehler. Möglicherweise sind deine Variablen nicht richtig
deklariert oder es werden Label aufgerufen, die nicht vorhanden sind.
Gruß
Gerd
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige