Hallo an das Forum,
im aktuellen Code lasse ich, beim Verlassen der Textbox, die Anzahl der Zeichen und in Spalte A im TB "Daten" das Vorhandensein der Auftrag-Nr. prüfen. Das funktioniert wie beabsichtigt.
Mein Ziel:
Es können bis zu vier gleiche Auftrag-Nr. in Spalte A vorhanden sein. Zusätzlich möchte ich, wenn die Auftrag-Nr. in A gefunden wurde, dass in Spalte B nach den vorhandenen Prüf-Nr. gesucht wird. Diese Prüfnummern sind von 1 bis 4. Nun soll nach dem Verlassen der Textbox, die in der Userform vorhandenen vier OptionButton, je bereits vorhandener Prüf-Nr., auf inaktiv gesetzt werden, so das nur noch die nicht vorhandenen OptionButton ausgewählt werden können.
Spalte A Spalte B Ziel
12345 1 OptionButton1 deaktiviert, OptionButton 2-4 aktiv
12345 2 OptionButton1 und 2 deaktiviert, OptionButton 3 und 4 aktiv
12345 3 OptionButton 1,2 und 3 deaktiviert, OptionButton 4 aktiv
12345 4 OptionButton 1-4 deaktiviert
Was und Wo muss in den Code eingefügt werden? Muss das Tabellenblatt "Daten" nach Spalte A und Spalte B sortiert werden?
Mein aktueller Code:
Private Sub TextBox_Auftrag_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim rngCell As Range
Dim strFirstAddress As String
Me.ListBox1.Clear
If Len(TextBox_Auftrag) <> 8 Then
MsgBox "Bitte Eingabe überprüfen!", vbCritical, "Fehler"
ERFBitumen.TextBox_Auftrag = ""
Exit Sub
Else
With Worksheets("Daten").Range("A:A")
Set rngCell = .Find(Me.TextBox_Auftrag.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
Do
With Me.ListBox1
.ColumnCount = 10
.AddItem
.List(.ListCount - 1, 0) = rngCell.Value
.List(.ListCount - 1, 1) = rngCell.Offset(0, 1).Value
.List(.ListCount - 1, 4) = rngCell.Offset(0, 4).Value
.List(.ListCount - 1, 5) = Format(rngCell.Offset(0, 5), "hh:mm")
.List(.ListCount - 1, 9) = rngCell.Offset(0, 9).Value
.ColumnWidths = "0cm;1cm;0cm;0cm;1,5cm;1,5cm;0cm;0cm;0cm;2,5cm"
.ColumnHeads = False
End With
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address <> strFirstAddress
Else
MsgBox "Dieser Auftrag wurde noch nicht geprüft und wird nach der Übernahme der Daten angelegt."
End If
End With
End If
TextBox_Auftrag.BackColor = vbWhite
If TextBox_Auftrag.Value > "" Then ComboBox_Pruefer.Enabled = True
End Sub
Vielen Dank für eure Hilfe
Grüße Mike
|