Saltar al contenido

selecciona varios archivos desde el explorador y copia a otra carpeta

publicado

Hola buenas tardes.

Trabajo constantemente con varios archivos que deben ser movidos de una carpeta a otra.

Estoy tratando de lograr que  desde excel con un botón me abra el explorador y estando ahí poder seleccionar los archivos de mi interés y después de seleccionarlo que los copie. 2. ahora abrir el explorador y ubicar la carpeta (destino) en donde quiero colocar los archivos copiados.

todo esto desde el explorador.

Ya he logrado hacer el proceso de seleccionar los archivos, copiarlos y seleccionar la carpeta donde quiero que las pegue.

El problema es que solo me pega un archivo.

Me pueden ayudar con la parte de la estructura para que se pegue todos.

 

Por favor

Mariano

 

 

Macro copia archivos seleccionados a carpeta.xlsm

Featured Replies

publicado

Debes cambiar la secuencia, primero seleccionar la carpeta de destino y luego los archivos.

Sub SelectMultipleArch()
'------------------------------------------------------------
' Escoger carpeta de destino
With Application.FileDialog(msoFileDialogFolderPicker)
   .Title = "Seleccione carpeta de destino"
   .ButtonName = "Aceptar"
   .InitialFileName = Range("j2") 'ruta que pongo en celda' "C:\"
   If .Show = -1 Then
      'si se escoge una carpeta y se cliquea aceptar
      Secfolder = .SelectedItems(1)
   End If
   If Secfolder = "" Then Exit Sub 'se ha pulsado cancelar
End With

'------------------------------------------------------------
' Escoger archivos a copiar
With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = True
    .Title = "Selecciona archivos"
    .Filters.Clear
    .Filters.Add "excel", "*.xlsm;*.xls"
    .Filters.Add "todos", "*.*"
    If .Show = True Then
        For Each fPath In .SelectedItems
          FileCopy fPath, Secfolder & "\" & extractFileName(fPath)
        Next
    End If
   End With
End Sub

 

publicado
  • Autor
hace 5 horas, Antoni dijo:

Debes cambiar la secuencia, primero seleccionar la carpeta de destino y luego los archivos.

Sub SelectMultipleArch()
'------------------------------------------------------------
' Escoger carpeta de destino
With Application.FileDialog(msoFileDialogFolderPicker)
   .Title = "Seleccione carpeta de destino"
   .ButtonName = "Aceptar"
   .InitialFileName = Range("j2") 'ruta que pongo en celda' "C:\"
   If .Show = -1 Then
      'si se escoge una carpeta y se cliquea aceptar
      Secfolder = .SelectedItems(1)
   End If
   If Secfolder = "" Then Exit Sub 'se ha pulsado cancelar
End With

'------------------------------------------------------------
' Escoger archivos a copiar
With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = True
    .Title = "Selecciona archivos"
    .Filters.Clear
    .Filters.Add "excel", "*.xlsm;*.xls"
    .Filters.Add "todos", "*.*"
    If .Show = True Then
        For Each fPath In .SelectedItems
          FileCopy fPath, Secfolder & "\" & extractFileName(fPath)
        Next
    End If
   End With
End Sub

 

Antoni:

Muchas gracias por tu ayuda, funciona muy bien el proceso.

Me es de gran ayuda para i trabajo del día dia.

Saludos

Mariano

 

Archivado

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