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

Preguntas similare

Leer las respuestas

#6 Alex V
13/11/2003 - 16:11 | Informe spam
Para abrirlo de forma exclusivo yo utilizo...

Open archivo_abrir For Binary Access Read Write Lock Read
Write As #1

Si todavía lo esta "bajando" marca error, por lo que lo
meto a un ciclo hasta que no lo marque.

Pero creo que la solución que da Fernando es mas sencilla
y funcional.


Lo de abrirlo de forma exclusiva es buena idea... ¿como


lo haces? (el
archivo del que hablo es un archivo de texto)

Lo de que el comando que haga ftp lo haga en un dir.


tempotal y al final lo
mueva al dir. de donde se pregunta tambien es muy buena


solusion...

Gracias... monstruos...


"Alex V" escribió


en el mensaje
news:073b01c3a93c$924d0980$
Yo lo que hago además de verificar que exista el archivo,
es que lo pueda abrir de manera exclusiva, para asegurar
que se haya bajado totalmente, ya que cuando son archivos
muy grandes, puede que mientras se esta bajando la
función Dir("C:\FicheroABajar") regrese VERDADERO.
Saludos


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:\Nombre


D
eFichero"
End Sub


Un saludo.


Fernando Arroyo
MS MVP - Excel



"Choc" escribió en el mensaje


news:borqkq$oc1$
data.net...
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...




.





.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida