FUNCIÓN VBA ORDENARALEATORIO
Function OrdenarAleatoriamente(rango As Variant) As Variant
'Establecer el rango de celdas que se ordenarán aleatoriamente
'Crear una matriz para almacenar los valores originales del rango
Dim valores As Variant
valores = rango.Value
'Crear una matriz para almacenar los índices de las filas del rango
Dim indices() As Integer
ReDim indices(1 To rango.Rows.Count)
For i = 1 To rango.Rows.Count
indices(i) = i
Next i
'Ordenar aleatoriamente los índices de las filas
Randomize
For i = 1 To rango.Rows.Count - 1
j = Int((rango.Rows.Count - i + 1) * Rnd + i)
temp = indices(j)
indices(j) = indices(i)
indices(i) = temp
Next i
'Rearmar los valores del rango en una nueva matriz ordenada aleatoriamente
Dim valoresOrdenados() As Variant
ReDim valoresOrdenados(1 To rango.Rows.Count, 1 To rango.Columns.Count)
For i = 1 To rango.Rows.Count
For j = 1 To rango.Columns.Count
valoresOrdenados(i, j) = valores(indices(i), j)
Next j
Next i
'Colocar los valores ordenados aleatoriamente de vuelta en el rango de celdas original
rango.Value = valoresOrdenados
End Function
------------------------------------------------------------------------------------------------------------------------
***********************************************************************************
'Por medio del siguiente código pordemos llamar a OrdenarAleatorio adjuntandole un rango específico.
Sub DesordenarAleatorio()
OrdenarAleatoriamente (hj_lista.[range_B])
OrdenarAleatoriamente (hj_lista.[range_I])
OrdenarAleatoriamente (hj_lista.[range_N])
OrdenarAleatoriamente (hj_lista.[range_G])
OrdenarAleatoriamente (hj_lista.[range_O])
End Sub
***********************************************************************************
No olivides compartir y dalre like a mi video.