Jump to content

afigueroaf

Members
  • Content Count

    27
  • Joined

  • Last visited

About afigueroaf

  • Rank
    Member
  • Birthday 03/03/1978

Contact Methods

  • Website URL
    http://www.wamtech.com

Profile information

  • Gender
    Hombre
  • Localización:
    Chile
  • Interests
    Macros VBA Excel

Converted

  • Campos
    ,

Recent Profile Visitors

80 profile views
  1. Sólo una consultilla más, Para sitios con HTTPS, debería haber alguna consideración respecto del código VBA? Ejemplo: https://mpe.enlazza.net:5906/login.asp Grax
  2. MARAVILLOSO!!! De 40 min aproximadamente, ahora se demora 4min Muchas gracias Abraham
  3. Hola Abraham, Pero si ya lo había mencionado anteriormente, Hostname es sólo la variable que contiene el sitio web, y un ejemplo de sitio web es: http://wr31solek.enlazza.net:6400/login.asp Sólo necesito capturar el SN: 825846 Actualmente la macro que tengo funciona a la perfección, sólo que se demora demasiado y por eso quisiera mejorar los tiempos Saludos,
  4. Hola Abraham, Gracias por toda la ayuda, pero no me resultó, al intentar acceder al hostname mediante powerquery no me deja y despliega un error Luego intenté con otro sitio web, pero al visualizar el código obtenido sólo muestra 3 líneas de código Sub Macro2() ' ' Macro2 Macro ' ' Selection.AutoFilter ActiveSheet.ListObjects("Document").Resize Range("$A$1:$D$2") Range("Document[[#Headers],[Document]]").Select End Sub
  5. Microsoft Excel 2013 (15.0.4420.1017) MSO (15.0.4420.1017) 32 bits
  6. Hola Abraham, Gracias por la ayuda, pero me da "Error 438 en tiempo de ejecución El objeto no admite esta propiedad o método" No sé si habré reemplazado mal la variable "Hostname" en el código, o simplemente mi Excel no es compatible? ActiveWorkbook.Queries.Add Name:="Table 15", Formula:="let" & Chr(13) & "" & Chr(10) & "Origen = Web.Page(Web.Contents(Hostname, [Timeout=#duration(0, 0, 6, 0)]))," & Chr(13) & "" & Chr(10) & " Data15 = Origen{15}[Data]," & Chr(13) & "" & Chr(10) & " #""Tipo cambiado"" = Table.TransformColumnTypes(Data15,{{""Column1"", type text}, {""Column2"", type text}, {""Column3"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Tipo cambiado""" ActiveWorkbook.Worksheets.Add With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _ "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Table 15"";Extended Properties=""""" _ , Destination:=Range("$A$1")).QueryTable .CommandType = xlCmdSql .CommandText = Array("SELECT * FROM [Table 15]") .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .PreserveColumnInfo = True .ListObject.DisplayName = "Table_15" .Refresh BackgroundQuery:=False End With
  7. Ahh, gracias por la aclaración, ahora entiendo, entonces tienes algún ejemplo de código para utilizar las recomendaciones que mencionas en lugar de continuar con el query obsoleto? Saludos,
  8. Hola Abraham, Muchas gracias por tu respuesta, la variable Hostname es de este tipo: http://e14spence.enlazza.net:6209/login.asp Como puedes ver es tan sólo una dirección web, no tiene parámetros Lamentablemente ya está todo el desarrollo hecho en excel
  9. Estimados gusto en saludarlos, Estaba fuera de las pistas, pero he vuelto, y quería ver la posibilidad que me puedan dar una mano con lo siguiente: Tengo una Macro que actualiza información proveniente de distintos sitios web, el problema es que muchas veces algunos sitios se encuentran muy lentos, o simplemente no disponibles, entonces la Macro queda eternamente esperando respuesta. Es posible indicarle al Query, que continúe con el siguiente sitio después de un tiempo determinado, para evitar que la Macro se demore demasiado? Gracias, Adjunto código: Sub WebDataImport() On Error GoTo ControlErr Dim strURL As String Dim strDestino As String, strReportName As String Dim numConnections As Integer, i As Integer Application.DisplayAlerts = False 'omitimos los mensajes de aviso 'vars numConnections = ThisWorkbook.Connections.Count strDestino = "A1" strReportName = "Número de serie" strURL = Hostname 'check url data If strURL <> Empty Then 'custom url address 'strURL = "URL;" & strURL 'clean previous connections If numConnections > 0 Then For i = 1 To numConnections ThisWorkbook.Connections(i).Delete Next i End If 'clean datasheet 'Sheets("Match").Select 'Range("A1").Select ' Selection.QueryTable.Delete ' Selection.QueryTable.Delete ' Selection.QueryTable.Delete ' Selection.ClearContents Sheets("Match").Cells.Clear 'control excel app Application.ScreenUpdating = False 'Dim t As Single 'Inicia el cronómetro 't = Timer 'get web query With Sheets("Match").QueryTables.Add(Connection:=strURL _ , Destination:=Range(strDestino)) .Name = strReportName .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlOverwriteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 2 .WebSelectionType = xlEntirePage .WebFormatting = xlWebFormattingNone .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False 'If Timer - t > 10 Then ' Resume Next 'End If 'Application.Wait (Now + TimeValue("0:00:10")) 'Selection.QueryTable.Refresh BackgroundQuery:=False End With 'MsgBox Timer - t, vbInformation, "Segundos" ' Muestra el tiempo transcurrido 'If Range(strDestino) = Empty Then Application.Wait (Now + TimeValue("0:00:5")) BackgroundQuery = False 'End If 'control excel app Application.ScreenUpdating = True Application.DisplayAlerts = True Caunt2 = Caunt2 + 1 - 2 MyTitle = "Hostname " & Caunt2 & " de " & Caunt1 'final message 'Answer = MsgBox("Do you want to continue ?", vbYesNo + vbQuestion, MyTitle) 'If Answer = 6 Then ' Else ' End ' Exit Sub 'End If End If Exit Sub ControlErr: Range(Cells(1, 1), Cells(1, 1)) = "" 'MsgBox "Error: " & Err.Description, vbCritical, "Mensaje" End Sub Fichero.txt
  10. Hola Tengo una consulta,

    Estoy utilizando una macro, para actualizar información proveniente de distintos sitios web, pero el problema es que algunas veces hay sitios que se tardan demasiado en responder y la Macro queda esperando respuesta eternamente, existe alguna forma de asignar algún tiempo al query, para que siga con el sitio siguiente transcurrido un tiempo determinado?

     

    Gracias, 

    Fichero.txt

  11. Ok, muchas gracias Abraham por tus consejos, ahora me queda un poco mas claro. Parece que definitivamente tendré que hacer todo de nuevo. Saludos, Alejandro
  12. Hola gracias por el link, bajé e instalé el Visual Basic 2008 Express Edition, y lo que necesito hacer es lo siguiente: Tengo un userform con código VBA creado desde un Excel, necesito saber si puedo copypastear el código en el Visual Basic 2008 Express Edition, para crear un ejecutable *.exe o de algún modo importar el userform a Visual Basic 2008 Express Edition. Saludos, Alejandro
  13. Hola gracias por responder, la verdad me gustaría convertir mis macros de Excel a un archivo *.exe Si eso no se puede, me descargué una versión gratis del VBA, y la idea sería traspasar el código de las macros al VBA. Saludos, Alejandro
  14. Cómo puedo traspasar mis macros a Visual Basic? Ya me bajé el VB y me gustaría saber si existe alguna forma de importar los userforms y módulos creados en Excel, para crear algún programa ejecutable (.exe) Saludos, Alejandro
  15. Me respondo yo mismo, ojala le sirva a alguien mas: Habilitar el control "Webrowser" (aparecerá un nuevo control en la barra de herramientas) Con ese control dibujar un cuadrado Luego con algún botón de comando escribir el siguiente código: Private Sub CommandButton1_Click() WebBrowser1.Navigate "www.URL.com" End Sub Cada vez que presionen el botón verán el link de Internet en el cuadrado creado. Si quieren algo mas pro, pueden crear un boton de comando que les pregunte el link: Private Sub CommandButton1_Click() Dim Host As String Host = InputBox("Ingrese URL de Video:") WebBrowser1.Navigate Host End Sub Espero les sirva Saludos, Alejandro
×
×
  • Create New...

Important Information

Privacy Policy