Saltar al contenido

Recommended Posts

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

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
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

 

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • 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.