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 afrezca su ayuda. Gracias.

Un saludo

1 respuesta

Respuesta
1

Si puedes Envíame tu archivo y lo reviso
AL correo [email protected]
escribe En el asunto escribe tu clave de usuario y el título de esta pregunta.
Contestame en esta pregunta cuando me lo hayas enviado.

Saludos. Dam

Hola Dam.

Te envío el codigo. Seguro que hay muchos errores pero soy novato...

'========================= BUSCA ARCHIVO DE FOTO AL MOVERSE POR UNA FILA DETERMINADA ========================

'Busca el archivo de foto al moverse por las celdas de una columna determinada

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim FilaAct As Integer
Set fotografia = Nothing
'ActiveSheet.Unprotect 'desprotege la hoja activa

'Si hay errores, que continúe

On Error Resume Next

'Ocultamos el procedimiento

Application.ScreenUpdating = False

'Pasamos a una variable, el nombre de la foto, que será el mismo que el nº de exped. del alumno, 'El nº de expediente lo toma de la columna Q y la fila actual.

FilaAct = ActiveCell.Row

foto = Range("Q" & FilaAct).Value

foto = Replace(foto, " ", "-")

foto = foto & ".png"

Ruta = ActiveWorkbook.Path & "\fotos alumnos" & "\" & foto

Me.Shapes("foto_del_alumno").Delete

Set fotografia = Me.Pictures.Insert(Ruta)
'asignamos el rango de celdas que ocupará la foto

With Range("U1:V5")

Arriba = .Top

Izquierda = .Left

Ancho = .Offset(0, .Columns.Count).Left - .Left

Alto = .Offset(.Rows.Count, 0).Top - .Top

End With

'le ponemos un nombre al objeto "fotografia" para poder borrarla cuando cambie la celda A1 '(ver que borramos la foto que hubiese, antes de insertar la nueva)

With fotografia .Name = "foto_del_alumno"

.Top = Arriba

.Left = Izquierda

.Width = Ancho

.Height = Alto

End With

'eliminamos el objeto

Set fotografia = Nothing

Set foto = Nothing

'ponemos todo como estaba

Application.ScreenUpdating = True

'ActiveSheet.Protect 'protege otra vez la hoja
End Sub

Muchas gracias

Cambia esta línea

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

por esta

Private Sub Worksheet_Change(ByVal Target As Range)

Prueba y me dices

Saludos. Dam

Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas