Acceso FTP

04/11/2008 - 13:23 por César | Informe spam
Hola a todos.

Estoy buscando información sobre acceso a ficheros en un servidor, vía FTP
desde VBA. Ya he buscado en Google pero lo que encuenttro es demasiado
complejo.

¿Alguna ideo o sugerencia?

Gracias anticipadas.

Saludos, César.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
04/11/2008 - 23:20 | Informe spam
hola, César !

Estoy buscando informacion sobre acceso a ficheros en un servidor, via FTP desde VBA.
Ya he buscado en Google pero lo que encuenttro es demasiado complejo.
Alguna ideo o sugerencia?



alguna idea o sugerencia ?...
(como para hacer... exactamente que tipo de acceso a ficheros en un servidor ?)

si comentas: que tienes... que necesitas... que has intentado (y alguno que otro "detalle de importancia")
(te ahorraras recibir propuestas que no te hubieran sido validas) ;)

saludos,
hector.
Respuesta Responder a este mensaje
#2 César
05/11/2008 - 09:02 | Informe spam
Hola Héctor.

Gracias por tu respuesta, te explico:

Todos los días accedo vía FTP (con usuario y clave) a un servidor externo a
mi empresa y descargo varios ficheros. Lo que intento es automatizar el
proceso mediante una macro; es decir que al ejecutarla esta se conecte
automáticamente, descargue los ficheros a un disco local y se desconecte del
servidor. Obviamente dispongo de la clave y el usuario.

Saludos, César.

"Héctor Miguel" wrote:

hola, César !

> Estoy buscando informacion sobre acceso a ficheros en un servidor, via FTP desde VBA.
> Ya he buscado en Google pero lo que encuenttro es demasiado complejo.
> Alguna ideo o sugerencia?

alguna idea o sugerencia ?...
(como para hacer... exactamente que tipo de acceso a ficheros en un servidor ?)

si comentas: que tienes... que necesitas... que has intentado (y alguno que otro "detalle de importancia")
(te ahorraras recibir propuestas que no te hubieran sido validas) ;)

saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
05/11/2008 - 17:57 | Informe spam
hola, César !

Todos los dias accedo via FTP (con usuario y clave) a un servidor externo a mi empresa y descargo varios ficheros.
Lo que intento es automatizar el proceso mediante una macro; es decir que al ejecutarla esta se conecte automaticamente
descargue los ficheros a un disco local y se desconecte del servidor. Obviamente dispongo de la clave y el usuario...



bueno, pues... no comentaste que has intentado ya (que te ha parecido "demasiado complejo" -???-) asi que...

(hasta donde se)... aunque puedes abrir archivos directamente desde sitios web (obviamente almacenados como *.XLS/M)
manejar una transferencia de archivos y/o administrar carpetas en sitios web...
NO esta tan disponible como (si estuviera en) tu disco duro :-((
existe un comando interno del sistema operativo que se encarga de ese tipo de operciones (ftp.exe) ->requiere<-:
- abrir el sitio/dominio
- proveer un nombre de usuario y (seguramente) una contrasena
- administrar las carpetas (o lo que sea neesario)
- poner un archivo en una ubicacion (dentro del sitio)
- cerrar la sesion de transferencia
(todo esto...) como si estuvieras tecleando las instrucciones en una sesion de d.o.s.
que puedes simular... creando un archivo de proceso por lotes (.bat) y usar el comando Shell

encontraras informacion 'basica/inicial/ejemplos/... acerca del mencionado comando en...
http://www.computerhope.com/software/ftp.htm
http://www.erlandsendata.no/downloads/ftpdemo.zip

por si te sirve como ejemplo, al final te reproduzco dos alternativas ("subir" y "bajar" archivos desde sitios web)

si cualquier duda (o informacion adicional mas... precisa y detallada)... comentas ?
saludos,
hector.

' para transferir un archivo GIF a una pagina web por excel-vba
Sub FTP_Rango_GIF()
Dim DirOrigen As String, ArchivoGIF As String, Batch As Integer, _
Dominio As String, Destino As String, Proceso As String, _
Izq As Single, Arr As Single, Ancho As Single, Alto As Single
DirOrigen = ThisWorkbook.Path & "\"
ArchivoGIF = DirOrigen & "miArchivoGIF.gif"
Dominio = "100.65.10.218" ' o... http://www.misitioweb.com '
Destino = "/images/"
Proceso = DirOrigen & "EnviaFTP.bat"
With Range("a1:i29")
Izq = .Left: Arr = .Top: Ancho = .Width: Alto = .Height: .CopyPicture
End With: Application.DisplayAlerts = False
With ActiveSheet.ChartObjects.Add(Izq, Arr, Ancho, Alto)
.Chart.Paste: .Chart.Export ArchivoGIF: .Delete
End With: Application.DisplayAlerts = True
Batch = FreeFile: Open Proceso For Output As #Batch
Print #Batch, "open " & Dominio
Print #Batch, "usuario" ' <- PON aqui la ID del usuario '
Print #Batch, "password" ' <- PON aqui la contrsena '
Print #Batch, "put " & ArchivoGIF & " " & Destino
Print #Batch, "quit": Close #Batch
Shell "cmd /c ftp -s:" & Proceso & " del " & Proceso, vbHide
End Sub

' para decargar un archivo desde un sitio web al directorio del libro (ya guardado) con la macro
Sub Importar_Archivo_Web()
Dim Destino As String, Dominio As String, Archivo As String, _
Proceso As String, Batch As Integer
Destino = ThisWorkbook.Path & "\"
Dominio = "http://www.misitioweb.com" ' ... -> "http://159.16.208.90/" (y ojo con las sub-carpetas) ;) '
Archivo = "miArchivo.xls"
Proceso = "Importar.bat"
ChDir Destino
Batch = FreeFile
Open Proceso For Output As #Batch
Print #Batch, "open " & Dominio
Print #Batch, "usuario" ' <- PON aqui la ID del usuario '
Print #Batch, "password" ' <- PON aqui la contrse#a '
Print #Batch, "retrive " & Archivo
Print #Batch, "close"
Print #Batch, "bye"
Close #Batch
Shell "cmd /c ftp -s:" & Proceso & " del " & Proceso, vbHide
End Sub
Respuesta Responder a este mensaje
#4 César
06/11/2008 - 09:01 | Informe spam
Hola Héctor.

Gracias por tu respuesta.

Lo que he estado intentando ha sido adaptar un ejemplo que encontré en
http://www.recursosvisualbasic.com....te-ftp.htm pero de momento no he logrado grandes resultados.

Saludos, César.

"Héctor Miguel" wrote:

hola, César !

> Todos los dias accedo via FTP (con usuario y clave) a un servidor externo a mi empresa y descargo varios ficheros.
> Lo que intento es automatizar el proceso mediante una macro; es decir que al ejecutarla esta se conecte automaticamente
> descargue los ficheros a un disco local y se desconecte del servidor. Obviamente dispongo de la clave y el usuario...

bueno, pues... no comentaste que has intentado ya (que te ha parecido "demasiado complejo" -???-) asi que...

(hasta donde se)... aunque puedes abrir archivos directamente desde sitios web (obviamente almacenados como *.XLS/M)
manejar una transferencia de archivos y/o administrar carpetas en sitios web...
NO esta tan disponible como (si estuviera en) tu disco duro :-((
existe un comando interno del sistema operativo que se encarga de ese tipo de operciones (ftp.exe) ->requiere<-:
- abrir el sitio/dominio
- proveer un nombre de usuario y (seguramente) una contrasena
- administrar las carpetas (o lo que sea neesario)
- poner un archivo en una ubicacion (dentro del sitio)
- cerrar la sesion de transferencia
(todo esto...) como si estuvieras tecleando las instrucciones en una sesion de d.o.s.
que puedes simular... creando un archivo de proceso por lotes (.bat) y usar el comando Shell

encontraras informacion 'basica/inicial/ejemplos/... acerca del mencionado comando en...
http://www.computerhope.com/software/ftp.htm
http://www.erlandsendata.no/downloads/ftpdemo.zip

por si te sirve como ejemplo, al final te reproduzco dos alternativas ("subir" y "bajar" archivos desde sitios web)

si cualquier duda (o informacion adicional mas... precisa y detallada)... comentas ?
saludos,
hector.

' para transferir un archivo GIF a una pagina web por excel-vba
Sub FTP_Rango_GIF()
Dim DirOrigen As String, ArchivoGIF As String, Batch As Integer, _
Dominio As String, Destino As String, Proceso As String, _
Izq As Single, Arr As Single, Ancho As Single, Alto As Single
DirOrigen = ThisWorkbook.Path & "\"
ArchivoGIF = DirOrigen & "miArchivoGIF.gif"
Dominio = "100.65.10.218" ' o... http://www.misitioweb.com '
Destino = "/images/"
Proceso = DirOrigen & "EnviaFTP.bat"
With Range("a1:i29")
Izq = .Left: Arr = .Top: Ancho = .Width: Alto = .Height: .CopyPicture
End With: Application.DisplayAlerts = False
With ActiveSheet.ChartObjects.Add(Izq, Arr, Ancho, Alto)
.Chart.Paste: .Chart.Export ArchivoGIF: .Delete
End With: Application.DisplayAlerts = True
Batch = FreeFile: Open Proceso For Output As #Batch
Print #Batch, "open " & Dominio
Print #Batch, "usuario" ' <- PON aqui la ID del usuario '
Print #Batch, "password" ' <- PON aqui la contrsena '
Print #Batch, "put " & ArchivoGIF & " " & Destino
Print #Batch, "quit": Close #Batch
Shell "cmd /c ftp -s:" & Proceso & " del " & Proceso, vbHide
End Sub

' para decargar un archivo desde un sitio web al directorio del libro (ya guardado) con la macro
Sub Importar_Archivo_Web()
Dim Destino As String, Dominio As String, Archivo As String, _
Proceso As String, Batch As Integer
Destino = ThisWorkbook.Path & "\"
Dominio = "http://www.misitioweb.com" ' ... -> "http://159.16.208.90/" (y ojo con las sub-carpetas) ;) '
Archivo = "miArchivo.xls"
Proceso = "Importar.bat"
ChDir Destino
Batch = FreeFile
Open Proceso For Output As #Batch
Print #Batch, "open " & Dominio
Print #Batch, "usuario" ' <- PON aqui la ID del usuario '
Print #Batch, "password" ' <- PON aqui la contrse#a '
Print #Batch, "retrive " & Archivo
Print #Batch, "close"
Print #Batch, "bye"
Close #Batch
Shell "cmd /c ftp -s:" & Proceso & " del " & Proceso, vbHide
End Sub



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