Como simular la importación de un archivo?

Expertos mi idea es la siguiente; quisiera colocar un botón en un formulario que al presionarse abra el explorador de disco y que al seleccionar un archivo y presionar guardar, ese archivo se copie en una carpeta especifica dictada por la macro. Saludos!

(Ejemplo del tipo de explorador)

3 respuestas

Respuesta
2

Te anexo la macro, cambia la carpeta destino por la carpeta donde quieres guardar la copia.

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

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 

Dante Amor   Como obligo a guardar el archivo con un nombre dictado por la macro?

Podrías explicar a qué te refieres con "dictado por la macro"

me refiero a que el nombre con que se va a guardar el archivo ya lo deje preestablecido en la macro. Así como dejo establecido la ruta donde se guarda.

Va el cambio

Sub Importar_Archivo()
'Por Dante Amor
    '
    destino = "C:\trabajo\archivos\"    'ruta destino donde se depositará la copia
    archivo = "nuevo nombre"
    '
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Seleccione Archivo"
        .Filters.Add "Todos los archivos", "*.*"
        .AllowMultiSelect = False
        If Not .Show Then Exit Sub
        rarch = .SelectedItems.Item(1)
        extension = Mid(rarch, InStrRev(rarch, "."))
        FileCopy rarch, destino & archivo & extension
        MsgBox "Archivo copiado"
    End With
End Sub

[sal u dos, no olvides valorar

Respuesta
2

Probá con esta macro. Te permite elegir un archivo y pasarlo al directorio que indica la macro. Sin abrirlo.

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

La ruta nueva puede ser tomada como dato de una celda... encontrarás comentarios en cada línea como para ubicarte cuál instrucción cambiar.

* Las instrucciones ver cap son solo referencias a mi manual 500Macros.

Si lo vas a ejecutar desde un formulario, el botón que tengas debe tener esta instrucción:

Call CambiaDireArchivo

Sdos.

Elsa

* Te invito a conocer el nuevo manual de Userforms

Respuesta
2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas