Macro para mover archivos a carpeta especifica

Esta pregunta viene con respecto a una respuesta tuya para otro usuario,

Quiero mover los archivos seleccionados a una carpeta especifica el cual conserve el histórico de los archivos y en la actual la deje en blanco hasta la próxima carga. Hasta el momento solo ajuste la ruta donde quiero mover los archivos y cambié a multiselección, pero me falta la instrucción para mover o cortar todos los archivos seleccionados.

Sub Importar_Archivo()
'Por Dante Amor
    'Dim wpath As String
    'Dim rarch As Variant
    destino = ThisWorkbook.Path & "\RECIBOS\HISTORICO\"
    '
    'destino = wpath   '"C:\trabajo\archivos\"    'ruta destino donde se depositará la copia
    '
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Seleccione Archivo"
        .Filters.Add "Todos los archivos", "*.*"
        .AllowMultiSelect = True
        If Not .Show Then Exit Sub
        rarch = .SelectedItems.Item(10)
        archivo = Mid(rarch, InStrRev(rarch, "\") + 10)
        FileCopy rarch, destino & archivo
        MsgBox "Archivo copiado"
    End With
End Sub

4 Respuestas

Respuesta
2

Para mover varios archivos:

Sub Respaldar_Archivos()
'Por Dante Amor
    destino = ThisWorkbook.Path & "\RECIBOS\HISTORICO\"
    '
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Selecciona uno o varios Archivos"
        .Filters.Add "Todos los archivos", "*.*"
        .AllowMultiSelect = True
        If Not .Show Then Exit Sub
        For Each archivo In .SelectedItems
            nombre = Mid(archivo, InStrRev(archivo, "\") + 1)
            Name archivo As destino & nombre
        Next
        MsgBox "Archivo respaldados"
    End With
End Sub

[sal u dos

Respuesta
1

Francisco puedes probar con esta ayuda de parte de Elsa Matilde

Sub CambiaDireArchivo()
'x Elsamatilde
'ruta de destino
rutaCopia = "C:\Users\xxxx\Downloads\Propios\"    'tu ruta
'controla posible error de apertura      'ver tratamiento de errores en cap. 11
On Error Resume Next
'abrir el navegador... seleccionar el archivo
libroAnt = Application.GetOpenFilename   'ver cap. 17.1
'si la variable está vacía significa que cancelamos la ventana de diálogo
If libroAnt = False Then Exit Sub
'como la variable guarda la ruta y nombre del archivo, se extrae la parte del nombre
For x = Len(libroAnt) To 1 Step -1
    If Mid(libroAnt, x, 1) = "\" Then
        nbreAnt = Mid(libroAnt, x + 1, Len(libroAnt) - x)
        Exit For
    End If
Next x
'NO abrir el libro elegido,solo cambiarlo de lugar
Name libroAnt As rutaCopia & nbreAnt    'ver capítulo 17.11
'opcional: eliminar el libro en origen
Kill libroAnt        'ver cap.16.5
End Sub
Respuesta
1

La diferencia entre tu macro y la que te pasó Eva (de mi autoría) es que contempla en las últimas líneas la opción de eliminar el archivo origen, con la instrucción Kill.

Espero esa sea la solución buscada, sino comenta.

Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas