18 May

Macro para transferir archivos a un sitio FTP

Recientemente tuve un caso donde luego de realizar unos cálulos automatizados en Excel, el resultado debía transferirse a un sitio FTP.  El desafío entonces es si es posible crear una manera automatizada de transferir estos archivos al sitio remoto.

Encontré varios recursos en línea y gracias a ellos desarrollé la siguiente solución

En síntesis es una macro que crea un archivo de texto con las instrucciones en sintaxis FTP, luego crea un archivo Batch que transfiere instrucciones MS-DOS siguiendo cada una de las  líneas del archivo de texto. Al finalizar, crea un archivo con extensión .out donde se confirma la transferencia.

Nótese que es necesario cambiar el código para agregar el usuario y password correcto. En ocasiones el sitio FTP no requiere password pues la conexión es anónima. Si este es el caso, simplemente remueva esas dos líneas del código.

El siguiente video muestra el programa en ejecución.

6 thoughts on “Macro para transferir archivos a un sitio FTP

  1. could you please give me a suggestion for me to upload the Thisworkbook to the ftp server but above code is would fine , where i have to make changes can mention for us

    • Hello jwala
      Plese change lines 21, 22 and 26:
      Print #lInt_FreeFile01, "open http://ftp.agiltools.com" -------> ftp destination address
      Print #lInt_FreeFile01, "USER suusuarioaqui supasswordaqui" -------> username and password for the ftp site
      Print #lInt_FreeFile01, "mput """ & ThisWorkbook.Path & "\project.XML""" -------> path to the file to upload

  2. Hola,

    Gracias por el aporte.

    ¿Podrías por favor señalar qué elementos debemos sustituir en nuestro código para reemplazarlos por nuestro fichero a transferir, nuestro ftp, etc..?

    Gracias y saludos.

    • Hola Mauro, gracias por tu comentario.
      Debes sustituir valores en las líneas 21, 22 y 26 del código así:
      Print #lInt_FreeFile01, "open http://ftp.agiltools.com" -------> Ingresa aquí el sitio ftp de destino
      Print #lInt_FreeFile01, "USER suusuarioaqui supasswordaqui" -------> sustituye estos datos por el usuario y la contraseña
      Print #lInt_FreeFile01, "mput """ & ThisWorkbook.Path & "\project.XML""" -------> ruta del archivo a cargar.

  3. Hi Alvaro,

    Many thanks for this code, it will really help a lot.
    I just need one more information: if I want to upload a file into a folder inside de ftp server, where in the code should I declare it.

    Regards!

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: