AW: Combobox Initialize und Change in ein Sub
Wolfi
Hi Peter,
Ich möchte mit dem Code immer den häufigsten Arbeitsplatz ermittel.
Das geht auch.
Allerdings gibt es den Fall, das in einem Abschnitt drei unterschiedliche Arbeitsplätze vorhanden sind, also ist keine Häufigkeitsermittling möglich.
Dann geht der Code Zu Fehler. Und es werden jetzt die drei Plätze an die Combobox übergeben. Dann wähl ich einen aus. Dieser soll wieder an den Code übergeben werden und in die entsprechende Zelle eingetragen werden und das klappt nicht.
also etwa so:
UserForm1.ComboBox1.List = Array(test, test1, test2)
UserForm1.Show
Worksheets("Process").Cells(pos(n), 3) = Wert der Combobox
Hier der ganze Code und ein Beispiel: https://www.herber.de/bbs/user/11201.xls
Sub Workcenter()
Dim pos()
Dim wks As Workbook
Dim wk
Set wks = ActiveWorkbook
anz = 0
ges = Worksheets("Process").Range("a65536").End(xlUp).Row
With Worksheets(1).Range("a1:a" & ges)
Set c = .Find("Summe", LookIn:=xlValues)
If Not c Is Nothing Then
Do
anz = anz + 1
ReDim Preserve pos(anz)
pos(anz) = c.Row
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Row <> pos(1)
End If
ReDim Preserve pos(anz + 1)
pos(anz + 1) = ges + 2
End With
For n = 1 To anz
On Error GoTo Fehler
Worksheets("Process").Cells(pos(n), 2) = _
WorksheetFunction.Sum(Range(Cells(pos(n) + 1, 2), Cells(pos(n + 1) - 2, 2)))
If pos(n + 1) - pos(n) > 3 Then
Worksheets("Process").Cells(pos(n), 3) = _
WorksheetFunction.Mode(Range(Cells(pos(n) + 1, 3), Cells(pos(n + 1), 3)))
Else
Worksheets("Process").Cells(pos(n), 3) = Worksheets("Process").Cells(pos(n) + 1, 3)
Fehler:
If pos(n + 1) - pos(n) = 3 Then
Worksheets("Process").Cells(pos(n), 3) = Worksheets("Process").Cells(pos(n) + 1, 3)
Else
test = Worksheets("Process").Cells(pos(n) + 1, 3)
test1 = Worksheets("Process").Cells(pos(n) + 2, 3)
test2 = Worksheets("Process").Cells(pos(n) + 3, 3)
UserForm1.ComboBox1.List = Array(test, test1, test2)
UserForm1.Show
Worksheets("Process").Cells(pos(n), 3) = UserForm1.ComboBox1.Value
End If
End If
Next n
End Sub