Consulta sobre código de macro en excel para evitar repetir información en un rango de celdas
Hola amigo alekzvargas, me auxiliaron con una macro para no repetir información en un rango de celdas, y funciona correctamente, le pone las letras de la "A" a la "L" en diferentes celdas sin repetir, mi pregunta es que en ves de poner las letras que tengo en la variable tarea ponga las tareas o el contenido de la celda que le corresponde, ejemplo para la letra A el valor que le corresponde se encuentra Z1, para la letra B le corresponde el contenido de Z2 y así sucesivamente hasta la letra L que le corresponde el contenido Z12, pongo el ejemplo que me dieron y deduzco que en la función Cell(2, I)=Mid(tarea, int(rnd(1)*len(tarea)+1), 1 es en donde se puede realizar o generar una macro que después de ejecutar el ejemplo que les muestro, me cambie los valores de A, B, C... ¿por el contenido de un rango de celdas?
Range("B2:L12").Select
Selection.ClearContents
tarea = "ABCDEFGHIJKL"
For I = 2 To 12
Cells(2, I) = Mid(tarea, Int(Rnd(1) * Len(tarea) + 1), 1)
tarea = Replace(tarea, Cells(2, I), "")
Next
For I = 2 To 12
For J = 3 To 12
tarea = "ABCDEFGHIJKL"
For K = 2 To J - 1
tarea = Replace(tarea, Cells(K, I), "")
Next
For K = 2 To I - 1
tarea = Replace(tarea, Cells(J, K), "")
Next
a = Mid(tarea, Int(Rnd(1) * Len(tarea) + 1), 1)
If a = "" Then
J = 3
Else
Cells(J, I) = Mid(tarea, Int(Rnd(1) * Len(tarea) + 1), 1)
End If
Next
Next
Range("B2:L12").Select
Selection.ClearContents
tarea = "ABCDEFGHIJKL"
For I = 2 To 12
Cells(2, I) = Mid(tarea, Int(Rnd(1) * Len(tarea) + 1), 1)
tarea = Replace(tarea, Cells(2, I), "")
Next
For I = 2 To 12
For J = 3 To 12
tarea = "ABCDEFGHIJKL"
For K = 2 To J - 1
tarea = Replace(tarea, Cells(K, I), "")
Next
For K = 2 To I - 1
tarea = Replace(tarea, Cells(J, K), "")
Next
a = Mid(tarea, Int(Rnd(1) * Len(tarea) + 1), 1)
If a = "" Then
J = 3
Else
Cells(J, I) = Mid(tarea, Int(Rnd(1) * Len(tarea) + 1), 1)
End If
Next
Next
2 Respuestas
Respuesta de Alekz Vargas
1
Respuesta de deathwatch
1