Een poging elders in een ander forum heeft nog geen voldoende houvast geboden om een stukje code te verbeteren gekoppeld aan een zogenaamde spinbutton in een Userform
In bijgaand XLS bestand is een userform opgenomen waarbij je in een werkblad (en ook in het formulier zelf) een drietal gegevens wijzigt in drie naast elkaar gelegen kolommen.
Het gaat hier om een klantnummer (numeriek veld) + 2 andere waarden.
De gehele userform werkt prima, behalve de spinbutton die als doel heeft om de geselecteerde regel omhoog danwel omlaag te verplaatsen.
De 1e keer gaat het altijd goed, daarna verdwijnt op één of andere manier de 'focus' op de listbox waarin deze 3 kolommen ook zichtbaar zijn. Pas als je met je muis een regel bewust wederom selecteert functioneert de spinbutton goed.
Ik moet dus telkenmale opnieuw de betreffende regel in de listbox opnieuw aanklikken.
Dit zelfde probleem doet zich voor met de "verwijder"-button. Ook hier moet ik bij het verwijderen van een aantal regles expliciet de regels iederkeer opnieuw in de listbox selecteren. (de getoonde selectie is nl. niet correct).
Wat doe ik fout.
Ricky.
Overigens is dit de code die aan het userform is gekoppeld:
In bijgaand XLS bestand is een userform opgenomen waarbij je in een werkblad (en ook in het formulier zelf) een drietal gegevens wijzigt in drie naast elkaar gelegen kolommen.
Het gaat hier om een klantnummer (numeriek veld) + 2 andere waarden.
De gehele userform werkt prima, behalve de spinbutton die als doel heeft om de geselecteerde regel omhoog danwel omlaag te verplaatsen.
De 1e keer gaat het altijd goed, daarna verdwijnt op één of andere manier de 'focus' op de listbox waarin deze 3 kolommen ook zichtbaar zijn. Pas als je met je muis een regel bewust wederom selecteert functioneert de spinbutton goed.
Ik moet dus telkenmale opnieuw de betreffende regel in de listbox opnieuw aanklikken.
Dit zelfde probleem doet zich voor met de "verwijder"-button. Ook hier moet ik bij het verwijderen van een aantal regles expliciet de regels iederkeer opnieuw in de listbox selecteren. (de getoonde selectie is nl. niet correct).
Wat doe ik fout.
Ricky.
Overigens is dit de code die aan het userform is gekoppeld:
Code:
Option Explicit
Dim lCurrentListIndex As Long
Dim strRowSource As String
Dim strAddress As String
Dim strSheetName As String
Dim RowCount As Long
Private Sub Delete_Click()
With ListBox
If .ListIndex < 0 Or .ListIndex = .ListCount - 1 Then Exit Sub
lCurrentListIndex = .ListIndex + 1
strRowSource = .RowSource
strAddress = Range(strRowSource).Address
strSheetName = Range(strRowSource).Parent.Name
.RowSource = vbNullString
With Range(strRowSource)
.Rows(lCurrentListIndex).Value = vbNullString
End With
Sheets(strSheetName).Range(strAddress).Name = strRowSource
.RowSource = strRowSource
.Selected(lCurrentListIndex) = True
End With
End Sub
Private Sub SpinButton1_SpinDown()
With ListBox
If .ListIndex < 0 Or .ListIndex = .ListCount - 1 Then Exit Sub
lCurrentListIndex = .ListIndex + 1
strRowSource = .RowSource
strAddress = Range(strRowSource).Address
strSheetName = Range(strRowSource).Parent.Name
.RowSource = vbNullString
With Range(strRowSource)
.Rows(lCurrentListIndex).Cut
.Rows(lCurrentListIndex + 2).Insert Shift:=xlDown
End With
Sheets(strSheetName).Range(strAddress).Name = strRowSource
.RowSource = strRowSource
.Selected(lCurrentListIndex) = True
End With
End Sub
Private Sub SpinButton1_SpinUp()
With ListBox
If .ListIndex < 1 Then Exit Sub
lCurrentListIndex = .ListIndex + 1
strRowSource = .RowSource
strAddress = Range(strRowSource).Address
strSheetName = Range(strRowSource).Parent.Name
.RowSource = vbNullString
With Range(strRowSource)
.Rows(lCurrentListIndex).Cut
.Rows(lCurrentListIndex - 1).Insert Shift:=xlDown
End With
Sheets(strSheetName).Range(strAddress).Name = strRowSource
.RowSource = strRowSource
.Selected(lCurrentListIndex - 2) = True
End With
End Sub