ich versuche eine Statistik mit SpinButtons zu beeinflussen.
Dazu sollen die Spinbuttons beim Wechsel einer Zeile gelöscht und in
der neuen Zeile angelegt werden.
Das funktioniert auch soweit.
Einzig die Benennung der Spinbuttons funktioniert nicht.
Es handelt sich um acht Spinbuttons. Wenn ich die Buttons manuell lösche,
erstellt das Makro die Buttons anschliessend durchnummeriert von 1 bis 8.
Lasse ich die Buttons vom Makro löschen, ist die Nummerierung scheinbar zufällig und es werden teilweise Werte ausserhalb von 1 und 8 verwandt.
Ich habe keine Ahnung warum!
Da die SpinButtons aber wieder an Makros gebunden sein sollen, benötige ich die genaue Reihenfolge der SpinButtons.
Ich würde mich über Eure Hilfe freuen.
Gruß
Markus
Hier nun noch mein Makro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zeile, spinner, indexer1(10), indexer2(10) As Integer
Dim posi As Single
Range(Target.Row & ":" & Target.Row).Select
actRow = Worksheets("Optionen").Cells(2, 5).Value
posi = 266.25
If Target.Row > "4" Then
If actRow = Target.Row Then GoTo Teilnehmer
'*** alte Spinner löschen
For Each OLEObject In Worksheets("Eingabe").OLEObjects
If Left(OLEObject.Name, 10) = "SpinButton" Then
OLEObject.Delete
End If
Next
'*** neue Spinner anlegen
For spinner = 1 To 4
indexer1(spinner) = OLEObjects.Add(ClassType:="Forms.SpinButton.1", Link:=False, _
DisplayAsIcon:=False, Left:=posi, Top:=((Target.Row - 1) * 15.75 + 3), _
Width:=14 + 1 / 4, Height:=15.75).Index
indexer2(spinner) = ActiveSheet.OLEObjects.Add(ClassType:="Forms.SpinButton.1", Link:=False, _
DisplayAsIcon:=False, Left:=posi + 41, Top:=((Target.Row - 1) * 15.75 + 3), _
Width:=14 + 1 / 4, Height:=15.75).Index
posi = posi + 116
Next spinner
'*** eigenschaften der spinner festlegen
For i = 1 To 4
OLEObjects(indexer1(i)).Object.Max = 1000
OLEObjects(indexer1(i)).PrintObject = False
OLEObjects(indexer2(i)).Object.Max = 1000
OLEObjects(indexer2(i)).PrintObject = False
Next i
OLEObjects(indexer1(1)).LinkedCell = "D" & Target.Row
OLEObjects(indexer2(1)).LinkedCell = "E" & Target.Row
OLEObjects(indexer1(2)).LinkedCell = "G" & Target.Row
OLEObjects(indexer2(2)).LinkedCell = "H" & Target.Row
OLEObjects(indexer1(3)).LinkedCell = "J" & Target.Row
OLEObjects(indexer2(3)).LinkedCell = "K" & Target.Row
OLEObjects(indexer1(4)).LinkedCell = "M" & Target.Row
OLEObjects(indexer2(4)).LinkedCell = "N" & Target.Row
End If
Teilnehmer:
End Sub