Foto varía su posición al bloquear hoja

Tengo una hoja donde aparece la foto del alumno/a según la fila activa. La foto se sitúa en la esquina superior derecha, pero cuando bloqueo la hoja las fotos van apareciendo en las celdas donde voy marcando.

Me interesa bloquear la hoja ya que aparecen datos que no quisiera borrar/modificar.

Pido encarecidamente a algún experto que me ofrezca su ayuda. Gracias.

He probado cambiando:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

por

Private Sub Worksheet_Change(ByVal Target As Range)

funciona, pero no me actualiza la foto al moverme por las filas.

Un saludo

1 Respuesta

Respuesta
1

Te explico el funcionamiento de cada línea, para que me ayudes a resolver lo que necesitas.

Con esta instrucción

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Cada vez que seleccionas cualquier celda de toda la hoja de excel, busca la foto con el nombre que aparece en la columna Q, por eso cada vez que mueves el cursor, busca la foto y la pega en la columna U.

Ejemplo:

Si seleccionas la celda B5, en automático excel toma el nombre de la foto de la celda Q5 y la inserta en la celda U1

Con esta instrucción

Private Sub Worksheet_Change(ByVal Target As Range)

Cada vez que cambies algo en la hoja, busca la foto y la pega.

Ejemplo:

Si modificas algo en la celda C6, en automático excel toma el nombre de la foto de la celda Q6 y la inserta en la celda U1
Si te das cuenta, en ambos ejemplos excel toma el número de fila para buscar el nombre de la foto.
Ahora bien lo que tienes que decidir es, cuál de las 2 opciones quieres, en la primera opción cada vez que muevas el cursor de excel, te va a buscar una foto, no importa en donde te muevas siempre busca una nueva foto. El problema aquí, es que si mueves nuevamente el cursor, nuevamente te cambia la foto.
En la segunda opción, solamente va a buscar la foto, si modificas algo en excel, puedes moverte por toda la hoja y no cambia la foto, solamente cambiará la foto cuando modifiques algo en una celda, incluso, puedes presionar F2 y dar enter y con eso tiene excel para ir a buscar una nueva foto.
Ahora, en ambos casos puedes acotar a un rango de celdas o una columna, en este momento esta abierto para toda la hoja de excel, puedes decidir que solamente si te mueves, por ejemplo, por la columna Q se cambie la foto (opción 1), o puedes decidir solamente si presionas F2 y le das enter a alguna celda de la columna Q se cambie la foto (opción 2).
Verifica que es lo que necesitas y me comentas para adecuar la macro.
Saludos. Dam

Cuando hago el control de asistencia de mis alumnos, suelo desplazarme (mediante las teclas de cursor) por una columna determinada y como ya he explicado, la foto que aparece en el rango de celdas U1:V5 corresponde al alumno de la fila actual.

Si el alumno no asiste a clase, cambio el valor de la celda actual por una "F", si el alumno asiste a clase NO cambio el valor de la celda actual.

Por lo que según me explicas, creo que necesito la opción:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Ya que necesito ver la foto de cada alumno aunque no tenga que cambiar el valor de la celda actual.

Espero haberme explicado correctamente. Perdona todas las molestias.

Muchas gracias. Un saludo.

Entonces regresa la línea a la macro, recomendación: cuando bloquees la hoja no muevas el cursor, también revisa las celdas U1:V5 que no estén bloqueadas.

Otro complemento a lo anterior, es agregar a la macro, para que solamente cambie la foto cuando te mueves por la columna en donde pones la letra F de Falta, como ya te expliqué, puedes moverte por toda la hoja sin necesidad de cambiar la foto, solamente cuando te muevas por esa columna que llamas "determinada".

Suponiendo que la columna "determinada" es la P agrega esta línea a la macro

Después de esta línea

Dim FilaAct As Integer

Agrega esta

If Intersect(Target, Range("P:P")) Is Nothing Then Exit Sub

Saludos. Dam

Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas