Planilla de fotos de alumnos

08/10/2016 - 00:31 por jbenayas | Informe spam
Hola, tengo una hoja de excel con las siguientes columnas (pongo algunos datos de ejemplo):

Código Fila Columna Alumno
001 1 3 Pepe
002 2 4 Juan
etc...

En una carpeta tengo fotos de los alumnos, con los nombre 001.jpg, 002.jpg, es decir, el Código seguido de la extensión .jpg

La idea es tener una planilla de fotos con la ubicación de los alumnos en la clase.

Para ello, quiero insertar las fotos en otra hoja, de la siguiente forma:

En la celda de la fila 1 y la columna 3 (C1), la foto de Pepe y el nombre "Pepe"
En la celda de la fila 2 y la columna 4 (D2), la foto de Juan y el nombre "Juan"
etc...

¿Que macro podría hacer para conseguirlo?

Gracias de antemano, un saludo.

Preguntas similare

Leer las respuestas

#1 jbenayas
09/10/2016 - 02:04 | Informe spam
Ya lo tengo, cortando de aquí y pegando de allá. Cuando tenga un rato pongo lo que he hecho, que seguro que será muy mejorable.
Respuesta Responder a este mensaje
#2 jbenayas
09/10/2016 - 09:29 | Informe spam
Bueno, aquí estoy.

He cambiado ligeramente la base de datos, por simpliciodad. Ahora es:

Código Celda Alumno
001 A1 Marta
002 A2 Jaime
003 B1 Luisa
004 B2 Juan
etc...

La base de datos está en una hoja que llamo "2ºESO" y las fotos las pongo en otra que llamo "Planilla"
En la planilla he puesto previamente un Ancho_de_columna 15 y un Alto_de_fila0, para todas las filas y columnas ocupadas.

El código es el que sigue:

Sub PonerFotos()
'
' Borrar fotos preexistentes
'

On Error Resume Next
Dim img As Shape
For Each img In ActiveSheet.Shapes
img.Delete
Next

'
' Poner Fotos
'

On Error Resume Next
Set Origen = Sheets("2ºESO")
Set Destino = Sheets("Planilla")

For i = 2 To 5
Set Celda = Origen.Cells(i, "B")
Set Alumno = Origen.Cells(i, "C")
Set Codigo= Origen.Cells(i, "A")

FotoDir = "C:\Ruta carpeta fotos" & "\" & Código.Value & ".jpg"

Destino.Range(Celda).Value = Alumno
Destino.Shapes.AddPicture FotoDir, True, True, Range(Celda).Left + 1, Range(Celda).Top + 1, 63, 84
Next
MsgBox "Proceso terminado", vbInformation
'
End Sub

Ahora me gustaría quitar el For-Next y poner algún control para que se repita mientras haya filas con datos en la hoja "2ºESO" y añadir más datos de cada alumno en la planilla, pero eso no corre prisa.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida