Saltar al contenido

Macro copiar varios archivos de una vez


Recommended Posts

publicado

Buenas, necesito una macro que me permita abrir un cuadro de dialogo, seleccionar una carpeta y copiar todos los archivos que hay dentro a otro destino.

 

Gracias de antemano

Saludos!

publicado

Hola @isidrod, muchas gracias por tu ayuda. A ver si me echas una mano a perfilarlo:

Function MiRuta()
    Dim directorio As String

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Seleccionar Carpeta"
        .Show
        directorio = .SelectedItems(1)
    End With

    If directorio <> "" Then
        MiRuta = directorio
    End If
End Function
Sub ListArchivos()
    Dim ruta, archivos As String
    Dim i As Integer
   
    ruta = MiRuta
   
    archivos = dir(ruta & "\*.csv*")
   
    Worksheets("BD").Range("A2:A" & Worksheets("BD").Cells(Rows.Count, 1).End(xlUp).Row) = ""
    i = 2
    Do While Len(archivos) > 0
        Worksheets("BD").Cells(i, 1) = archivos
        archivos = dir()
        i = i + 1
        Loop
End Sub

Sub copiar()

Range("A2:A10").Select
On Error Resume Next
Do While ActiveCell.Value <> ""
    inicio = MiRuta & ActiveCell.Value
    fin = "Z:\destino\" & 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

Funciona todo bien hasta que pretendí que inicio no fuera una ruta fija, ya que cambia todos los días, sino aprovechar que a se había establecido la ruta en la primera macro y la cogiera como inicio. Pero me devuelve "archivo no encontrado" en las celdas.

Como lo soluciono??

 

Gracias miles

publicado
'https://www.todoexpertos.com/categorias/tecnologia-e-internet/software-y-aplicaciones/microsoft-excel/respuestas/wj5umn35syfno/pasar-archivos-de-una-carpeta-a-otra-con-macroSub copiar()
Sub copiar()
'Por.DAM
Range("B2").Select
On Error Resume Next
Do While ActiveCell.Value <> ""
    'inicio = "C:\Users\avabta\Documents\" & ActiveCell.Value
    'fin = "C:\cfdi\" & ActiveCell.Value
   inicio = Range("A2") & ActiveCell.Value
    fin = Range("D2") & ActiveCell.Value
   
   
  ' Carpeta = Range("Z2")
'Archivo = Range("Z3")
    
    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

a ver si así te funciona  te envió el archivo

COPIAR ARCHIVO DE UNA CARPETA A OTRA encelda.xlsm

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.