Jump to content

afigueroaf

Members
  • Content Count

    31
  • Joined

  • Last visited

Everything posted by afigueroaf

  1. Hola a todos MacroLovers, Sucede que de vez en cuando me encargan reiniciar un servidor, al cual posteriormente debo cargarle una serie de comandos vía telnet por el puerto 23, lo cuál claramente toma tiempo, en consecuencia estaba pensando si será posible ejecutar alguna macro que a través de un combobox me pregunte la IP, para posteriormente enviar el listado de comandos en forma automatizada? Gracias,
  2. Estimado Abraham, gracias por la solución, funciona a la perfección, pero como le puedo agregar un poquito de delay para que espere la respuesta de aquellos sitios que demoran un poco más en cargar, antes de que lo tome como "Titulo = """?
  3. Hola Antoni, Gracias por la ayuda. Yo no tengo Office 365, y el problema persiste, aunque descubrí una manera artesanal de arreglarlo, simplemente cierro todas las carpetas abiertas y ahí funciona, no sé cuál será el motivo del porque no funciona cuando se tiene una carpeta abierta, aunque igual es molesto tener que estar cerrando a cada rato las carpetas para funcione la función DataObj.PutInClipboard Alguien conocerá otra forma de solucionarlo?, o estoy obligado a migrar a Office 365? Gracias,
  4. Desde la ultima actualización de Windows, que el comando DataObj.PutInClipboard No funciona, a alguien más le pasó esto?, tiene solución? Gracias,
  5. 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
  6. MARAVILLOSO!!! De 40 min aproximadamente, ahora se demora 4min Muchas gracias Abraham
  7. 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,
  8. 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
  9. Microsoft Excel 2013 (15.0.4420.1017) MSO (15.0.4420.1017) 32 bits
  10. 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
  11. 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,
  12. 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
  13. 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
  14. 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

  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. Hola Marco, gracias por la información, sin embargo, los enlaces hacen referencia a cómo ver un video desde un archivo. Yo simplemente necesito ver un link de video desde Internet en algún user form. El link de video corresponde a una webcam. Existe algún código que me permita lograr esto? Saludos, Alejandro
  21. Hola amigos, me gustaría saber, si es posible ver un link de video de Internet desde un user form? Creé un user form, intenté hacerlo desde un cuadradado para insertar imagen, pero no me resultó. Alguien que me pueda ilustrar en esta matería por favor, gracias! Saludos, Alejandro
  22. Hola amigos, saludos, y gracias por su ayuda en los otros post: Me explico un poco mas: Sucede que recibo el número "1" por el puerto serial del PC, dicho número lo almaceno en la variable "Dato", pero cuando leo la variable "Dato" me encuentro con que tiene el numero 1 seguido de un cuadrado (carriage return), lo que me complica los cálculos. Por ahora lo solucioné del siguiente modo: Range("A1") = Dato Range("A2").Select ActiveCell.FormulaR1C1 = "=LEFT(R[-1]C,1)" Dato = Range("A2").Value Como pueden ver, utilizo una celda de Excel, pero la idea es realizar la operación LEFT a nivel de la variable "Dato", sin tener que pasar por las celdas de la planilla, y eso es justamente lo que no sé hacer. Desde ya muchas gracias, Alejandro
  23. Me respondo yo mismo: En el siguiente link se explica paso a paso cómo lograr la pregunta planteada en el post anterior, dejo el link por si a alguien mas le sirve Serial Port Communication in Excel (VBA) | Your Electronics Open Source Sigan las instruccione al pie de la letra y prueben contra un hyperterminal de otro PC, con un cable nullsoft o serial cruzado (pine TX con Rx, 2 con el 3 y GND común) Saludos!!!
  24. Hola De nuevo!!! Estoy intentando capturar datos por el puerto Serie del PC, con protocolo RS232, la idea es poder tener el dato capturado en alguna celda de Excel. Ojala alguien me pueda ilusrar en esta materia Gracias de antemano y un cordial saludo
×
×
  • Create New...

Important Information

Privacy Policy