Atwist
Terugkerende gebruiker
- Lid geworden
- 24 jan 2006
- Berichten
- 1.055
- Besturingssysteem
- Wndows 10
- Office versie
- 2016
hallo
Heb een probleem met mijn script die gemaakt is met Excel 2013.
En deze moet nu draaien op Excel 2016.
Het script heeft goed gewerkt maar nu krijg ik in onderstaan een "Overloop" fout
Het loopt vast op regel in het blauw gemarkeerd ik weet in wat er nu precies fout is, Ik hoop dat jullie mij kunnen helpen.
Heb een probleem met mijn script die gemaakt is met Excel 2013.
En deze moet nu draaien op Excel 2016.
Het script heeft goed gewerkt maar nu krijg ik in onderstaan een "Overloop" fout
Het loopt vast op regel in het blauw gemarkeerd ik weet in wat er nu precies fout is, Ik hoop dat jullie mij kunnen helpen.
Code:
Option Explicit ' Variablendefinition erforderlich
Dim InI As Integer ' Schleifenvariable für den gesamten Code der Userform
Dim ByWert As Byte ' Zeilenvariable für den gesamten Code der Userform
Dim iAnzeige As Integer
Dim objShell As Object
Dim lngDauer As Long
Private Sub UserForm_Initialize()
' 0: Manuell;
' 1: Fenstermitte
' 2: Bildschirmmitte
' 3: Windows-Standard
Me.StartUpPosition = 2
ComboBox1.Tag = "1"
' Tage des aktuellen Monats in ComboBox1 eintragen
For InI = 1 To Day(CDate("01." & Month(Date) + 1 & "." _
& Year(Date)) - 1)
ComboBox1.AddItem InI
Next InI
For InI = 1 To 12 ' Monate als Wort in ComboBox2 eintragen
ComboBox2.AddItem Format(DateSerial(1900, InI, 1), _
"MMMM")
Next InI
' Jahre in Combobox3 eintragen
For InI = 1900 To 2222
ComboBox3.AddItem InI
Next InI
ComboBox1.Value = Day(Date) ' Aktuelles Datum als Startwert setzen
ComboBox2.Value = Format(Date, "MMMM")
ComboBox3.Value = Year(Date)
ComboBox1.ListRows = 31 ' Länge der angezeiten Liste für Tag und Monat anpassen
ComboBox2.ListRows = 12
ComboBox1.Tag = "" ' Eigenschaft zurücksetzen
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' Damit mit X nicht geschloßen werden kann
If CloseMode = 0 Then
MsgBox "Bitte schließen Sie die Anwendung mit der -Zurück- Schaltfläche.", vbCritical
Cancel = 1
End If
End Sub
Private Sub Cmd_01_Click()
Sheets("Leistungs").Visible = True
Worksheets("Leistungs").Select
Range("A1:F43").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=Frmformulare.Tb_01, Collate:=True, _
IgnorePrintAreas:=False
Set objShell = CreateObject("WScript.Shell")
lngDauer = 3
iAnzeige = objShell.Popup("Dass Formular LEISTUNG wirt gedruckt", _
lngDauer, "Bitte warten", vbOKOnly)
Sheets("Leistungs").Visible = False
Unload Me
End Sub
Private Sub Cmd_02_Click()
Sheets("Leistungs").Visible = True
Worksheets("Leistungs").Select
Range("A1:F43").Select
Unload Me
ActiveWindow.SelectedSheets.PrintPreview
Frmformulare.Show
End Sub
Private Sub Cmd_03_Click()
Sheets("Leistungs").Visible = True
Worksheets("Leistungs").Select
Range("A1:F43").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=Frmformulare.Tb_01, Collate:=True, _
IgnorePrintAreas:=False
Set objShell = CreateObject("WScript.Shell")
lngDauer = 3
iAnzeige = objShell.Popup("Dass Formular LEISTUNG wirt gedruckt", _
lngDauer, "Bitte warten", vbOKOnly)
Sheets("Leistungs").Visible = False
Unload Me
End Sub
Private Sub CommandButton2_Click()
Frmkalenderleistung.Cmd_01.Visible = False
Frmkalenderleistung.Cmd_02.Visible = False
Frmkalenderleistung.Cmd_03.Visible = False
Unload Me
End Sub
Private Sub CMD_Übernehmen_Click()
' Eintragen Datum in Tabelle
Sheets("Leistungs").Visible = True
Worksheets("Leistungs").Select
Range("A11") = _
CDate(ComboBox1 & "." & ComboBox2 & "." & ComboBox3)
Range("A11").Select
Selection.AutoFill Destination:=Range("A11:A41"), Type:=xlFillDefault
Range("A11:A41").Select
End Sub
Private Sub ComboBox1_Change()
' ausgewählte Zeile auf Variable schreiben
[B][COLOR="#0000FF"] If ComboBox2.Tag = "" Then ByWert = ComboBox1.ListIndex[/COLOR][/B]
End Sub
Private Sub ComboBox2_Change()
If ComboBox1.Tag = "1" Then Exit Sub ' Start der UserForm
' Eigenschaft setzen damit der Code im Change Ereignis der ComboBox1
' beim Auswahl (ComboBox1.ListIndex =... ) nicht ausgeführt wird
ComboBox2.Tag = 1
' ausgewählte Zeile in ComboBox1 merken,
' da ComboBox1 gelöscht geleert wird
ByWert = ComboBox1.ListIndex
ComboBox1.Clear ' ComboBox1 leeren
If ComboBox2.ListIndex = 11 Then ' Dezember gewählt
For InI = 1 To 31
ComboBox1.AddItem InI
Next InI
Else
' Ende Schleife 1. des Folgemonats -1,
' damit Monatsende vom ausgewählten Monat
For InI = 1 To Day(CDate("01." _
& ComboBox2.ListIndex + 2 & "." & ComboBox3) - 1)
ComboBox1.AddItem InI
Next InI
End If
' ausgewählten Tag in ComboBox1 wieder anzeigen
If ByWert > ComboBox1.ListCount - 1 Then
' falls ausgewählter Tag größer als Tage
' im ausgewählten Monat, wird der letzten Tag angezeigt
ComboBox1.ListIndex = ComboBox1.ListCount - 1
Else
ComboBox1.ListIndex = ByWert
End If
ComboBox2.Tag = "" ' Eigenschaft zurücksetzen
End Sub
Private Sub ComboBox3_Change()
If ComboBox1.Tag = "" Then
' Schleife verlassen, wenn Monat verschieden von Februar
If ComboBox2.ListIndex = 1 Then
' Eigenschaft setzen damit der Code im
' Change Ereignis der ComboBox1 beim Auswahl
' (ComboBox1.ListIndex =... ) nicht ausgeführt wird
ComboBox2.Tag = 1
' ausgewählte Zeile in ComboBox1 merken,
' da ComboBox1 gelöscht geleert wird
ByWert = ComboBox1.ListIndex
' Tage entsprechend Jahr und Monat füllen
ComboBox1.Clear
For InI = 1 To Day(CDate("01.03." & ComboBox3) - 1)
ComboBox1.AddItem InI
Next InI
If ByWert > ComboBox1.ListCount - 1 Then
' falls ausgewählter Tag größer als Tage
' im ausgewählten Monat, wird der letzten Tag angezeigt
ComboBox1.ListIndex = ComboBox1.ListCount - 1
Else
ComboBox1.ListIndex = ByWert
End If
ComboBox2.Tag = "" ' Eigenschaft zurücksetzen
End If
End If
End Sub