Seleccionar y copiar archivos listados en una hoja de excel

Disculpa, tengo una duda.

Si tengo una lista de nombres de archivos en una hoja de excel, por ejemplo:

Y quiero que en la carpeta donde están localizados estos archivos, los identifique, los seleccione y si es posible los copie y pegue en otra carpeta. ¿Es posible hacer esto con Excel?

Agradecería mucho si me pudieras indicar como se hace esto.

2 Respuestas

Respuesta

Puedes ir leyendo esta informacion te servira pata lo que quieres.

Si deseas copiar un solo archivo:

GetFileOpenName: Muestra el sistema de cuadro de diálogo Abrir archivo y permite al usuario seleccionar un archivo o escriba un nombre de archivo.

GetFileSaveName: Muestra el sistema de cuadro de diálogo Guardar con el nombre de archivo especificado en el cuadro Nombre de archivo. El usuario puede introducir un nombre de archivo o seleccionar un archivo de la lista gris.

Si son varios archivos:

GetFolder: Muestra una selección de la carpeta cuadro de diálogo.

DirList: Rellena un ListBox con una lista de archivos. Puede especificar una ruta, una máscara, y un tipo de archivo para restringir el conjunto de archivos que se muestran. Si la ventana tiene asociado un control de StaticText DirList puede mostrar la unidad actual y el directorio.

FileCopy:Copia un archivo a otro, opcionalmente, sobrescribir el archivo de destino.

Respuesta

Entiendo que se van a mover con el mismo nombre y se hará esta tarea con todos los libros que aparecen en la lista.

Entonces, en un módulo del Editor, coloca esta macro. Lo primero que debes ajustar es la ruta donde se encuentran actualmente y la ruta de destino.

Como no comentas nada de la extensión asumí como xlsm. Si la extensión ya se incluye en la lista de nombres no irá en la macro.

Sub cambia_ubicacion_libro()
'x Elsamatilde  - adaptación de macro extraída del manual 500Macros
'se definen las rutas de los libros
rutaAnt = ThisWorkbook.Path & "\"
rutaNva = "C:\Users\ELSA\Downloads\Copias\"
'se recorre la lista de la hoja activa, col A
[A2].Select
While ActiveCell <> ""
    libroAnt = rutaAnt & ActiveCell & ".xlsm"    'ajustar extensión
    libroNvo = rutaNva & ActiveCell & ".xlsm"
    'se contempla posible error de ruta o libro inexistente
    On Error Resume Next
    Name libroAnt As libroNvo
Wend
MsgBox "Fin del proceso."
End Sub

Si esto resuelve tu consulta no olvides valorarla. Si te queda algun detalle a resolver podés solicitarme aclaraciones... en este caso no valores aún.

Hola, 

Solo para aclaracion... la lista de excel contiene nombres de archivos, los archivos son formato xml. 

Suponiendo que yo tengo todos mis archivos en la siguiente ruta

C:\Users\gpina\Desktop\CarpetaOriginal

como le puedo hacer para que de acuerdo a esa lista de archivos en excel me seleccione de mi carpeta original solo los archivos de esa lista y una vez seleccionados, los copie y pegue en:

C:\Users\gpina\Desktop\CarpetaDestino

Parece que ahora el problema del foro está resuelto.

Bien, parece que no probaste la macro enviada, porque cambiando las rutas que dejé de ejemplo por las tuyas, creo que resuelve justamente lo que solicitas.

La instrucción NAME libroAnt AS libroNvo es la que necesitas para cambiar de lugar un libro, que en este caso serán todos los que aparecen en la lista de la columna A (lee los comentarios en la macro para ajustar este detalle). Las instrucciones que te pasó el otro usuario no te serán necesarias, en principio.

Entiendo que la lista tiene los nombres de los archivos pero no incluyen la extensión, por eso la agrego.

Así quedaría la macro con las rutas de tus carpetas. Debes colocar el nombre correspondiente a CARPETAORIGINAL y CARPETADESTINO.

Si tu idea es no colocar esos nombres en la misma macro sino 'buscar' la carpeta mediante una caja de diálogo, avísame para que te agregue las instrucciones que faltan.

Sub cambia_ubicacion_libro()
'x Elsamatilde  - adaptación de macro extraída del manual 500Macros
'se definen las rutas de los libros
rutaAnt = "C:\Users\gpina\Desktop\CarpetaOriginal\"   'AJUSTAR NOMBRE CARPETA
rutaNva = "C:\Users\gpina\Desktop\CarpetaDestino\"    AJUSTAR NOMBRE CARPETA
'se recorre la lista de la hoja activa, col A
[A2].Select     'AJUSTAR COLUMNA SI NO ES A
While ActiveCell <> ""
    libroAnt = rutaAnt & ActiveCell & ".xml"    'EXTENSIÓN XML
    libroNvo = rutaNva & ActiveCell & ".xml"
    'se contempla posible error de ruta o libro inexistente
    On Error Resume Next
    Name libroAnt As libroNvo
Wend
MsgBox "Fin del proceso."
End Sub

Si esto resuelve tu consulta no olvides valorarla. 

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas