Per Back intendi la posizione originale (quella ordinata con numero riga crescente)?
Se così...
Inserisci in un modulo queste due macro
- Codice: Seleziona tutto
Sub Casuale()
Dim Ws1, Ws2 As Worksheet
Set Ws1 = Worksheets("Foglio1")
Set Ws2 = Worksheets("Foglio2")
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
Passo = 0
For RR1 = 1 To UR1
Ricom:
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
Riga = Int(Rnd() * UR1) + 1
If Ws1.Range("A" & Riga).Value = "" Then GoTo Ricom
UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row + 1
If Passo = 0 Then
Ws1.Rows(Riga & ":" & Riga).Cut Destination:=Ws2.Rows("1:1")
Passo = 1
Else
Ws1.Rows(Riga & ":" & Riga).Cut Destination:=Ws2.Rows(UR2 & ":" & UR2)
End If
Next RR1
Sheets("Foglio2").Cells.Cut
Sheets("Foglio1").Cells.Select
ActiveSheet.Paste
Range("A1").Select
End Sub
Sub Ordina()
Cells.Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
End Sub
Nel foglio1 dove hai le righe da rendere casuali inserisci due pulsanti che chiamerai ad esempio "Casuali" e "Ordina"
Assegna ad ogni pulsante la rispettiva macro
Aziona il pulsante che desideri
Ciao