Ayuda con macro para copiar archivos

Hola Expertos. Esta macro me ayudó mucho en su momento:Sub ejemplo() 'por luismondelo sheets("hoja1"). Select Range("a1"). Select Do While ActiveCell. Value "" inicio = "C:\User\nava\Desktop\72ppp\" & ActiveCell. Value fin = "C:\Users\nava\Desktop\Prueba\" & ActiveCell. Value FileCopy inicio, fin ActiveCell. Offset(1, 0). Select Loop End Sub. Mi pregunta es: Habría manera de que no se detuviera en el caso de que no encontrara el archivo en la carpeta de origen, pero que lo marcara de alguna forma para buscarlo después? Me explico: Tengo una carpeta con fotos (foto1.jpg, 2, 3... Etc) Y en la columna de excel tengo Foto1.jpg, 2... Y por ejemplo la reffotonoexiste.jpg. Hay manera de que la macro no se detenga ahí, ya que la foto no estaría en la carpeta.. ¿y qué continúe hasta el final y que me marque esa celda?

1 respuesta

Respuesta
1

La macro quedaría así:

Sub ejemplo()
'por luismondelo. Mod.Por.DAM
Sheets("hoja1").Select
Range("a1").Select
On Error Resume Next
Do While ActiveCell.Value <> ""
    inicio = "C:\User\nava\Desktop\72ppp\" & ActiveCell.Value
    fin = "C:\Users\nava\Desktop\Prueba\" & ActiveCell.Value
    FileCopy inicio, fin
    If Err.Number <> 0 Then ActiveCell.Offset(0, 1) = "Archivo no encontrado"
    ActiveCell.Offset(1, 0).Select
Loop
End Sub

Saludos.Dante Amor
Si es lo que necesitas.

Hola Dante, muchas gracias por tu ayuda. He probado con esta macro y lo que ocurre es que aparecen como "archivo no encontrado" todos los elementos desde el 1º que no encuentra, a pesar de que si estén.
38-030-001.jpg
38-030-002.jpg
38-030-003.jpg
38-030-004rr.jpgArchivo no encontrado
38-030-005.jpgArchivo no encontrado
38-030-006.jpgArchivo no encontrado
38-033-001r.jpgArchivo no encontrado
38-033-002.jpgArchivo no encontrado
38-033-003.jpgArchivo no encontrado
38-033-004.jpgArchivo no encontrado

Realmente los únicos que no están son los que tienen la letra R.

¿que puede pasar?

Gracias

Revisa que el nombre de los directorios sea correcto.

Revisa en el directorio destino si te está copiando los archivos, si es así, le tengo que hacer un pequeño cambio a la macro.

Hola de nuevo. Si, el destino es correcto, de hecho del ejemplo si copia los archivos que encuentra y evidentemente no copia los que no existen. El fallo está en que a partir del 1º que no encuentra me marca como archivo no encontrado todos los demás, aunque si los copie.

Prueba con esta macro

Sub ejemplo()
'por luismondelo. Mod.Por.DAM
Sheets("hoja1").Select
Range("a1").Select
On Error Resume Next
Do While ActiveCell.Value <> ""
    inicio = "C:\User\nava\Desktop\72ppp\" & ActiveCell.Value
    fin = "C:\Users\nava\Desktop\Prueba\" & ActiveCell.Value
    valida = Dir(inicio)
    If valida = "" Then
        ActiveCell.Offset(0, 1) = "Archivo no encontrado"
    Else
        FileCopy inicio, fin
    End If
    ActiveCell.Offset(1, 0).Select
Loop
End Sub

Simplemente PERFECTO.

Muchas gracias por tu ayuda y tu tiempo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas