Gruppe
Dialog
Bereich
SpinButton
Thema
Zeilen bedingt durch SpinButton verschieben
Problem
Wie kann ich durch Betätigung eines SpinButtons einer UserForm Zeilen in einem Tabellenblatt nach unten oder oben verschieben?
Lösung
Geben Sie den nachfolgenden Code in das Klassenmodul der UserForm ein.
ClassModule: frmMoveRows
Private Sub cmdContinue_Click()
Unload Me
End Sub
Private Sub SpinButton1_SpinUp()
Dim sTxt As String
With lstValues
If .ListIndex = 0 Then Exit Sub
sTxt = .List(.ListIndex)
.List(.ListIndex) = .List(.ListIndex - 1)
.List(.ListIndex - 1) = sTxt
.ListIndex = .ListIndex - 1
Rows(.ListIndex + 1).Insert
Rows(.ListIndex + 3).Copy Rows(.ListIndex + 1)
Rows(.ListIndex + 3).Delete
End With
End Sub
Private Sub SpinButton1_SpinDown()
Dim sTxt As String
With lstValues
If .ListIndex = .ListCount - 1 Then Exit Sub
sTxt = .List(.ListIndex)
.List(.ListIndex) = .List(.ListIndex + 1)
.List(.ListIndex + 1) = sTxt
.ListIndex = .ListIndex + 1
Rows(.ListIndex + 2).Insert
Rows(.ListIndex).Copy Rows(.ListIndex + 2)
Rows(.ListIndex).Delete
End With
End Sub
Private Sub UserForm_Initialize()
Dim iRow As Integer
iRow = 1
Do Until IsEmpty(Worksheets("Daten").Cells(iRow, 1))
lstValues.AddItem Cells(iRow, 1)
iRow = iRow + 1
Loop
lstValues.ListIndex = SpinButton1.Value - 1
End Sub
StandardModule: basMain
Sub CallForm()
frmMoveRows.Show
End Sub