der Code meiner UF in der Datei
https://www.herber.de/bbs/user/30407.xls
ist nachfolgend gelistet. Ich habe dazu Fragen.
Userform1.SetFocus geht nicht.
a) Wie erreiche ich es, dass bei Start der Datei die UF sichtbar ist und den Focus hat? Am besten nur die UF sichtbar und die Tabelle minimiert falls das möglich ist.
b) Wie werte ich den Klick auf das Kreuz oben rechts aus? Ein Ereignis Userform1_Exit gibt es leider nicht und UserForm_QueryClose ist wohl nicht ganz das Richtige um bei Verlassen der UF die Exceldatei zu schliessen.
c) Wie entferne ich das Kreuz oben rechts damit die UF nur über CommandButtons verlassen werden kann?
d) Wie kann ich den Code der UF "beschleunigen"?
Danke ^ Gruß
Reinhard
Die UF wird mit
Option Explicit
Sub start()
Worksheets("Tabelle1").Columns.Hidden = True
UserForm1.Show 0
End Sub
gestartet.Ihr Code:
Option Explicit
Private Sub SpinButton1_Change()
Dim zei As Long, sp As Byte, n As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
TextBox1 = SpinButton1
sp = CInt(TextBox1)
Worksheets("Einstellungen").Range("a1") = SpinButton1
zei = Worksheets("Punktevergabe").Cells(65536, sp).End(xlUp).Row
With UserForm1.Spreadsheet1
For n = 1 To 100
.Cells(n, 1) = ""
Next n
'.Range("A1:A500").ClearContents 'scheint bei Spreadsheets nicht zu gehen
For n = 2 To 100 'end(xlup).row scheint bei Spreadsheets nicht zu gehen
.Cells(n - 1, 1).Value = Worksheets("Punktevergabe").Cells(n, sp).Value
Next n
TextBox2 = Worksheets("Punktevergabe").Cells(1, sp).Value
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Private Sub UserForm_Initialize()
Dim sp As Integer, zei As Long, n As Integer
Application.ScreenUpdating = False
Application.EnableEvents = False
TextBox1 = Worksheets("Einstellungen").Range("a1")
SpinButton1 = TextBox1
sp = CInt(TextBox1)
Worksheets("Einstellungen").Range("a1") = SpinButton1
zei = Worksheets("Punktevergabe").Cells(65536, sp).End(xlUp).Row
With UserForm1.Spreadsheet1
For n = 2 To 100 'end(xlup).row scheint bei Spreadsheets nicht zu gehen
.Cells(n - 1, 1).Value = Worksheets("Punktevergabe").Cells(n, sp).Value
Next n
TextBox2 = Worksheets("Punktevergabe").Cells(1, sp).Value
End With
zei = Worksheets("Stammkwizzerliste").Cells(65536, 1).End(xlUp).Row
With UserForm1.Spreadsheet2
For n = 1 To zei
.Cells(n, 1).Value = Worksheets("Stammkwizzerliste").Cells(n, 1).Value
Next n
TextBox2 = Worksheets("Punktevergabe").Cells(1, sp).Value
End With
OptionButton1 = True
UserForm1.Spreadsheet1.ViewableRange = "A:A"
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
ThisWorkbook.Close
End Sub