Still can't get it right
You didn't mention that you wanted to move the source as well.
Here is another cut
Private Sub CommandDown_Click()
Dim vTemp, vtemp1
With ListBox1
If .ListIndex < .ListCount - 1 Then
Rows(.ListIndex + 1).Cut
Range("A" & .ListIndex + 3).Insert Shift:=xlDown
vTemp = .ListIndex
LoadListbox
.ListIndex = vTemp + 1
End If
End With
End Sub
Private Sub CommandOK_Click()
Unload Me
End Sub
Private Sub CommandUp_Click()
Dim vTemp
With ListBox1
If .ListIndex 0 Then
Rows(.ListIndex + 1).Cut
Range("A" & .ListIndex).Insert Shift:=xlDown
vTemp = .ListIndex
LoadListbox
.ListIndex = vTemp - 1
End If
End With
End Sub
Private Sub UserForm_Initialize()
LoadListbox
ListBox1.ListIndex = 0
End Sub
Sub LoadListbox()
Dim ColCnt As Integer
Dim Rng As Range
Dim cw, c, i
' Fill the List Box
ColCnt = ActiveSheet.Columns.Count
Set Rng = ActiveSheet.Range("A1:P34")
With ListBox1
.ColumnCount = ColCnt
.List = Rng.Value
cw = ""
For c = 1 To .ColumnCount
cw = cw & Rng.Columns(c).Width & ";"
Next c
.ColumnWidths = cw
End With
End Sub
--
HTH
Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
"asmenut" wrote in message
...
I am still having trouble getting the re-order to work on the multicolumn
listbox.
I took the advice of Dick, Tom and Bob; Rewrote the code to incorporate
the
advice for getting the listbox to show without errors, but I can't seem to
get it to write the new order into the spredsheet? Any ideas.
Code Below
Private Sub CommandDown_Click()
Dim vTemp, vtemp1
With ListBox1
If .ListIndex < .ListCount - 1 Then
vTemp = .Value
vtemp1 = .List(.ListIndex, 2)
.List(.ListIndex) = .List(.ListIndex + 1)
.List(.ListIndex + 1) = vTemp
.List(.ListIndex + 1, 2) = vtemp1
.ListIndex = .ListIndex + 1
End If
End With
End Sub
Private Sub CommandOK_Click()
Unload Me
End Sub
Private Sub CommandUp_Click()
Dim vTemp, vtemp1
With ListBox1
If .ListIndex 0 Then
vTemp = .Value
vtemp1 = .List(.ListIndex, 2)
.List(.ListIndex) = .List(.ListIndex - 1)
.List(.ListIndex, 2) = .List(.ListIndex - 1, 2)
.List(.ListIndex - 1) = vTemp
.List(.ListIndex - 1, 2) = vtemp1
.ListIndex = .ListIndex - 1
End If
End With
End Sub
Private Sub UserForm_Initialize()
Dim ColCnt As Integer
Dim Rng As Range
' Fill the List Box
ColCnt = ActiveSheet.Columns.Count
Set Rng = ActiveSheet.Range("A1:P34")
With ListBox1
.ColumnCount = ColCnt
.List = Rng.Value
cw = ""
For c = 1 To .ColumnCount
cw = cw & Rng.Columns(c).Width & ";"
Next c
.ColumnWidths = cw
.ListIndex = 0
End With
End Sub
|