Sub Zahlungen()
Application.ScreenUpdating = False
Worksheets("Zahlungen").Unprotect Password:="xxxx"
Worksheets("Vergabe nach VE").Unprotect Password:="xxxx"
UserForm2.Show
End Sub
Nach meinem Vertändnis hat das mit der Initilisierung zu tun, in welcher ja der Code steht um die Combobox zu populaten.
Sonst hier der Code wie er für meine Userform initialized.
Private Sub UserForm_Initialize()
UserForm2.TextBox1.Value = "TT.MM.JJJJ"
UserForm2.TextBox2.Value = "TT.MM.JJJJ"
Dim Obj As Range, sArr() As String, i As Integer, oCol As New Collection
For Each Obj In ThisWorkbook.Worksheets("Vergabe nach VE").Range("E7:E400")
CollectionAddItem oCol, Obj.Value 'Wert in Collection
Next Obj
For i = 0 To oCol.Count - 1
sArr(i) = oCol.Item(i + 1) 'Collection in Array
Next i
ComboBox1.List = sArr 'Array in Combobox ausgeben
End Sub
Function CollectionAddItem(oCol As Collection, ByVal sItem As String, Optional iPos As Integer, Optional ByVal vKey As Variant) As Long
'Funktion fügt einen Eintrag sortiert in eine Collectionsammlung ein, Einträge können nicht mehrfach vorkommen
Dim nStart As Long, nEnd As Long, nX As Long
If Trim$(sItem) = "" Then Exit Function
With oCol
If iPos <> 0 Then
.Add sItem, vKey, iPos
ElseIf .Count < 1 Then
.Add sItem, vKey 'wenn Collection noch leer ist
'Neuen Eintrag mit 1. Eintrag vergleichen
ElseIf .Item(1) > sItem Then
.Add sItem, vKey, 1 'an 1. Position einfügen
ElseIf .Item(1) Like sItem _
Or .Item(.Count) Like sItem Then
'jetzt mit letzten Eintrag vergleichen
ElseIf .Item(.Count) < sItem Then
.Add sItem, vKey 'an letzter Position einfügen
Else
'durch binäre Suche die korrekte Position ermitteln
nStart = 1: nEnd = .Count
Do
nX = (nStart + nEnd) \ 2
If nX = nStart Then Exit Do
'Vergleich
If .Item(nX) = sItem Then Exit Function
If .Item(nX) > sItem Then nEnd = nX
If .Item(nX) < sItem Then nStart = nX
Loop
On Error Resume Next
.Add sItem, vKey, , nX
End If
End With
End Function
Sonst will ich ja einfach nur auf die Range E7:E400 aus dem worksheet "vergabe nach VE" zugreifen bzw. die geordnet in meine Combobox bekommen.
Was bräuchtest du denn alles aus der Beispieldatei? Aus Datenschutzgründen müsste ich die nämlich reduzieren.
LG