¿Cómo puedo copiar una carpeta de mis documentos a una o varias localidades de red? Con Excel 2010

En mi trabajo debo hacer un respaldo de varias carpetas que contiene archivos de Excel, pdf y xml en dos ubicaciones de red distintos, quisiera saber si es posible que la copia se haga desde Excel por medio de una macro.

Respuesta
1

Para copiar todos los archivos de una carpeta a otra, ori por la carpeta origen, cambia des por la carpeta destino.

Sub CopiarArchivos()
'Por.Dante Amor
    ori = "C:\trabajo\"
    des = "C:\trabajo\varios\"
    '
    ChDir ori
    arch = Dir("*.*")
    Do While arch <> ""
        FileCopy ori & arch, des & arch
        arch = Dir()
    Loop
End Sub

Prueba y me comentas.

Saludos. Dante Amor

Hola Dante

Gracias por tu apoyo antes que nada

ahora, este código que me envías lo puse en un modulo nuevo del libro que me compartiste en la pregunta anterior y puse un ejemplo de  ori = "C:\FACTURACION\L020 LOMAS\L020 LOMAS PERIODO 20\"

des = "C:\users\user\documents\FACTURACION\L020 LOMAS\L020 LOMAS PERIODO 20" y no me movió ningún archivo ¿sera que me falto especificar algo mas?

la carpeta tiene archivos de excel, pdf, xml y elementos de outlook

Saludos,Franco

Revisa que en las 2 rutas al final tengas la diagonal \"

Revisa que todos los nombres de las carpetas estén bien escritos, con acentos y espacios

Hola Dante buen día

Una pregunta sobre este código ¿solo copiara los archivos de una sola carpeta? o ¿como debo poner la ruta para que copie todas las sub carpetas que cree anteriormente y las ponga en la unidad de red?

Saludos,Franco

¿Lo qué hicimos fue crear las carpetas destino?

¿Ahora vamos a pasar los archivos de unas carpetas a las carpetas destino?

Para eso se puede hacer archivo por archivo, así

Sub CopiarArchivos()
'Por.Dante Amor
    ori = "C:\trabajo\nuevo"    '"C:\FACTURACION\L020 LOMAS"
    des = "C:\trabajo\varios"   '"C:\users\user\documents\FACTURACION\L020 LOMAS"
    Set fso = CreateObject("scripting.filesystemobject")
    Set carpeta = fso.getfolder(ori)
    For Each subcarpeta In carpeta.subfolders
        s = subcarpeta.Name
        For Each arch In subcarpeta.Files
            a = arch.Name
            FileCopy ori & "\" & s & "\" & a, des & "\" & s & "\" & a
        Next
    Next
End Sub

Pero si tienes una carpeta origen así:

"C:\FACTURACION\L020 LOMAS\"

Y abajo de esta carpeta ya tienes varias subcarpetas y dentro de estas subcarpetas tienes varios archivos, y quieres copiar todo a una carpeta destino, utiliza esto:

Sub CopiarCarpeta()
'Por.Dante Amor
    Set carpeta = CreateObject("Scripting.FileSystemObject")
    carpeta.CopyFolder "C:\FACTURACION\L020 LOMAS", "C:\users\user\documents\FACTURACION\", True
End Sub

Lo que hace es copiar toda la carpeta L020 a abajo de "C:\users\user\documents\FACTURACION\"

Revisa que la carpeta origen no tiene diagonal al final, significa que vamos a copiar toda la carpeta L020.

La carpeta destino si tiene diagonal al final, porque vamos a copiar la carpeta abajo de FACTURACION\

Saludos. Dante Amor

Perfecto Dante!!

La opción dos si me esta copiando las carpetas completas que era lo que necesitaba, solo un ultimo detalle:

Cada vez que corra la macro va a copiar todas las carpetas de nuevo y las nombrara con el "(nombre carpeta-copia)" ?o solo copiara la que no exista? o me va a preguntar que si deseo combinar carpetas?

Existe la manera de agregarle una condición de que revise si ya existe la carpeta en el destino y si es así no la copie de nuevo y si no existe entonces si la copie?

esto porque el destino a la que van a ir en la red de mi trabajo es dominio gerencial y quiero dar buenos resultados.

Gracias por tu apoyo!!

Saludos,Franco.

Te anexo la macro actualizada

Sub CopiarCarpeta()
'Por.Dante Amor
    origen = "C:\FACTURACION\"
    nueva = "L020 LOMAS"
    destino = "C:\users\user\documents\FACTURACION\"
    If Dir(destino & nueva, vbDirectory) = "" Then
        Set carpeta = CreateObject("Scripting.FileSystemObject")
        carpeta.CopyFolder origen & nueva, destino, True
    End If
End Sub

Muchísimas gracias Dante!!

ahora voy a formular la otra pregunta en un tema nuevo

¿Como enviar correo masivo de Outlook con Excel 2010?

Espero me puedas seguir apoyando!!

De nuevo gracias!!

Saludos, Franco.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas