Una macro que haga un ftp.

11/11/2003 - 22:51 por Choc | Informe spam
Quiero hacer una macro que se traiga un archivo mediante un ftp y lo importe
al abrir el libro, y lo que no se hacer es el ftp desde VB, he llamado un
comando bat, pero el problema es que al llamarlo con Shell, la macro sigue
sin esperar a que el comando acabe.

¿Se puede hacer de otra forma? p.e. haciendo el ftp directamente desde la
macro, sin llamar a un BAT.

Un saludo,
Gracias de nuevo...
 

Leer las respuestas

#1 Fernando Arroyo
12/11/2003 - 09:53 | Informe spam
Una posibilidad es entrar en un bucle y no salir mientras el fichero que te quieres bajar no se encuentre en el disco duro, algo como:

If Dir("C:\FicheroABajar") <> "" Then Kill "C:\FicheroABajar" 'Borrar el fichero, si existe
Shell "Cmd.exe /C Start C:\BatchParaHacerElFTP.bat" 'Esto sería en Windows XP

While Dir("C:\FicheroABajar") = "" 'Mientras no exista el fichero...
Wend

'
'Resto de instrucciones
'


Otra posibilidad es usar una función del API de Windows, aunque en este caso habría que hablar más de una descarga que de un ftp, por lo que quizás no te sirva:

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function

Private Sub DescargarFichero()
DownloadFile "http://www.dominio.com/fichero", "c:\NombreDeFichero"
End Sub


Un saludo.


Fernando Arroyo
MS MVP - Excel



"Choc" escribió en el mensaje news:borqkq$oc1$
Quiero hacer una macro que se traiga un archivo mediante un ftp y lo importe
al abrir el libro, y lo que no se hacer es el ftp desde VB, he llamado un
comando bat, pero el problema es que al llamarlo con Shell, la macro sigue
sin esperar a que el comando acabe.

¿Se puede hacer de otra forma? p.e. haciendo el ftp directamente desde la
macro, sin llamar a un BAT.

Un saludo,
Gracias de nuevo...


Preguntas similares