ayuda multidescargas

20/07/2007 - 21:36 por daniel | Informe spam
Hola a todos
haber si me podeis ayudar con lo siguiente:
tengo una hoja excel en la columna A tengo la lista con las direcciones de
la descarga de los archivos
y en la columna B la ruta donde se deben guardar el archivo descargado.
y necesito que en un listbox1 me muestre la lista de archivos y en el
listbox con la opcion multiselect poder descargar los archivos seleccionados
y en el label1 me muestre los archivos que van descargados ejemplo 1/10.
uso la siguiente macro para descargar uno:
'-

Option Explicit

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 DownloadFromUrl(strFullUrl As String, _
strSaveFile As String) As Boolean


Dim RetVal As Long

RetVal = URLDownloadToFile(0, "ruta del archivo", _
"c:\Documents and Settings\DANIEL\Escritorio\Yahoo.htm", 0, 0)

If RetVal = 0 Then
DownloadFromUrl = True
End If

End Function

Sub Prueba()


Dim x As String

If DownloadFromUrl("ruta del archivo", x) Then
MsgBox "Ok ...Descarga exitosa"
Else
MsgBox "Imposible :-( ..., intentolo en otro momento :-P "
End If
End Sub

un saludo y muchas gracias
Daniel
 

Leer las respuestas

#1 Héctor Miguel
21/07/2007 - 06:48 | Informe spam
hola, daniel !

tengo una hoja excel en la columna A tengo la lista con las direcciones de la descarga de los archivos
y en la columna B la ruta donde se deben guardar el archivo descargado.
y necesito que en un listbox1 me muestre la lista de archivos
y en el listbox con la opcion multiselect poder descargar los archivos seleccionados
y en el label1 me muestre los archivos que van descargados ejemplo 1/10.
uso la siguiente macro para descargar uno:



1) con el siguiente ejemplo, necesitaras solo la declaracion de la API: -> Private Declare Function URLDownloadToFile

2) como no indicas [+/- exactamente] 'como' le pasas al listbox el contenido de las columnas A y B -?-
-> estoy suponiendo que lo haces por medio de la propiedad: -> RowSource -???-
[tambien *asumo/supongo/propongo/...* que no sea necesario un MsgBox para avisar si hubo exito o no con la descarga] -???-

3) copia las siguientes lineas en el modulo de codigo del formulario [DESPUES de la declaracion de la API]

Dim Total As Byte, Seleccionados As Byte, Procesar() As Boolean, _
Sig As Byte, Procesando As Byte
Private Sub UserForm_Initialize()
Total = ListBox1.ListCount
ReDim Procesar(Total)
End Sub
Private Sub ListBox1_Change()
With ListBox1
Seleccionados = Seleccionados + IIf(.Selected(.ListIndex), 1, -1)
Procesar(.ListIndex) = .Selected(.ListIndex)
End With
End Sub
Private Sub CommandButton1_Click()
With ListBox1
For Sig = LBound(Procesar) To UBound(Procesar)
If Procesar(Sig) Then
Procesando = Procesando + 1
Label1.Caption = Procesando & " / " & Seleccionados
URLDownloadToFile 0, .List(Sig, 0), .List(Sig, 1), 0, 0
End If
Next
End With
End Sub

corrige donde mis supuestos esten equivocados, haz algunas pruebas y...
si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
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 DownloadFromUrl(strFullUrl As String, _
strSaveFile As String) As Boolean
Dim RetVal As Long
RetVal = URLDownloadToFile(0, "ruta del archivo", _
"c:\Documents and Settings\DANIEL\Escritorio\Yahoo.htm", 0, 0)
If RetVal = 0 Then
DownloadFromUrl = True
End If
End Function

Sub Prueba()
Dim x As String
If DownloadFromUrl("ruta del archivo", x) Then
MsgBox "Ok ...Descarga exitosa"
Else
MsgBox "Imposible :-( ..., intentolo en otro momento :-P "
End If
End Sub

Preguntas similares