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

2 Respuestas

Respuesta
1
Estoy en ello, dame un poquito de tiempo porque no he manejado mucho las macros, ahorita lo estoy intentando
No desesperes, no creas que se me olvida, solo que no he encontrado la manera aun, en cuanto pueda solucionarlo te posteo la respuesta
Una disculpa, no se que tan urgente te sea realizar la macro, pero al momento no he podido resolverlo, no es un tema con el que este muy familiarizado y no he encontrado la solución, seguiré buscando por lo pronto, si encuentras la manera te agradecería me dijeras como porque ya me quede con la duda jaja saludos
Me espero ya que yo tampoco he podido resolver el problema (no tengo conocimientos de visual basic...) y de antemano muchas gracias amigo alekvargas
Jajaja ok, estamos en contacto
¿Qué paso con tu problema? No he encontrado como hacerlo, pudiste solucionarlo, de ser así, cierra la pregunta
Respuesta
1
Que hay
¿Lo qué buscas es que escriba en una celda el contenido de otra?
¿Cuál sería la celda origen, el rango a cubrir, y la celda destino?
Muchas gracias por contestar amigo deathwatch, tratare de explicarte el problema...
Con la macro que ya tengo me pone al azar en el rango de celdad de la B2 a la L12, las letras de la A a la L, sin que se repitan en las filas, por ejemplo toda la fila de B2 a L2 me pone A C F G B L DE F E I QUE J, todo esta correcto sí me pone las letras sin repetir en ese rango de celdas, pero ahora lo que quiero es que en ves de las letras me ponga el contenido de un rango de celdas... Ejemplo para la letra A siempre sera el contenido de la celda Z1=Tarea-uno, para la letra B el contenido de la celda Z2=Tarea-dos, para la letra C el contenido de la celda Z3=Tarea-tres y así sucesivamente hasta la letra L la cual tendría el contenido de la celda Z12=Tarea-doce... en este momento yo estoy cambiando manualmente el equivalente de las tareas por cada letra, pero no quiero que el usuario lo haga manualmente quiero que se realice automáticamente con una macro
espero se entienda el ejemplo y de antemano muchas gracias amigo deathwatch...
Saludos desde Chihuahua Méx. Tu amigo Jorge
Que hay
A ver, prueba con esto:
-----------------------
For j = 2 To 12
    For k = 2 To 12
ValAleat = Int(Rnd(3) * (12 - 1) + 1)
ValCelda = Cells(ValAleat, 26).Value
Cells(j, k).Value = ValCelda
    Next k
Next j
-------------------------
Creo que te puede servir...
Modifica los números en la función Rnd a como mejor te acomode. La vdd no he terminado de entender como funciona la función Rnd

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas