buenas, tengo un macro para importar tablas desde internet, el macros en si no tiene problema, solo necesito ayuda para acomodarlo con unos detalles al momento de traer muchas tablas desde internet al mismo tiempo
lo primero es que el macros me entrega la tabla en la celda activa, pero necesito que tome como referencia una casilla en especifico y que desde esa celda se copie la tabla, no he logrado dar con el comando (por ejemplo que la tabla se importe desde la casilla G4, hasta donde llegue la tabla)
lo segundo es que al momento de importar una segunda tabla, esta tome como posición de referencia la casilla siguiente de la ultima tabla importada, por ejemplo si el día importo desde la WEB1 una tabla de 5x2 que tiene como referencia la casilla G4, el ultimo valor de la tabla estará en la posición G11 (de la primera columna), por lo que la segunda tabla debe importarse desde G12, pero si el martes la tabla ahora es de 8x2, ahora el ultimo valor estara en la casilla G14, por lo que la siguiente tabla debería partir desde G15, espero se entienda lo que trato de explicar
el en fondo es poder importar muchas tablas que cambian su tamaño diariamente (en una sola direccion 5x2, 10x2, etc) para formar una tabla mayor, que no tengan casillas vacías entre ellas, agradecería mucho su ayuda, no puedo utilizar celda activa ya que son mas de 200 tablas al día.
para recorrer cada elemento de una tabla uso el siguiente macros:
Sub tabla3()
Dim htmlDeRespuesta As Object
Dim row As Long
Dim col As Long
Set htmlDeRespuesta = CreateObject("htmlFile")
With CreateObject("msxml2.xmlhttp")
.Open "Get", "PAGINAWEB", False
.Send
htmlDeRespuesta.body.innerhtml = .responseText
End With
With htmlDeRespuesta.GetElementsByTagName("table")(0)
For row = 1 To .Rows.Length - 1
For col = 0 To .Rows(row).Cells.Length - 1
ActiveCell.Cells(row + 1, col + 1).Value = .Rows(row).Cells(col).innerText
Next col
Next row
End With
End Sub
agradecería mucho su ayuda, saludos
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
buenas, tengo un macro para importar tablas desde internet, el macros en si no tiene problema, solo necesito ayuda para acomodarlo con unos detalles al momento de traer muchas tablas desde internet al mismo tiempo
lo primero es que el macros me entrega la tabla en la celda activa, pero necesito que tome como referencia una casilla en especifico y que desde esa celda se copie la tabla, no he logrado dar con el comando (por ejemplo que la tabla se importe desde la casilla G4, hasta donde llegue la tabla)
lo segundo es que al momento de importar una segunda tabla, esta tome como posición de referencia la casilla siguiente de la ultima tabla importada, por ejemplo si el día importo desde la WEB1 una tabla de 5x2 que tiene como referencia la casilla G4, el ultimo valor de la tabla estará en la posición G11 (de la primera columna), por lo que la segunda tabla debe importarse desde G12, pero si el martes la tabla ahora es de 8x2, ahora el ultimo valor estara en la casilla G14, por lo que la siguiente tabla debería partir desde G15, espero se entienda lo que trato de explicar
el en fondo es poder importar muchas tablas que cambian su tamaño diariamente (en una sola direccion 5x2, 10x2, etc) para formar una tabla mayor, que no tengan casillas vacías entre ellas, agradecería mucho su ayuda, no puedo utilizar celda activa ya que son mas de 200 tablas al día.
para recorrer cada elemento de una tabla uso el siguiente macros:
Sub tabla3() Dim htmlDeRespuesta As Object Dim row As Long Dim col As Long Set htmlDeRespuesta = CreateObject("htmlFile") With CreateObject("msxml2.xmlhttp") .Open "Get", "PAGINAWEB", False .Send htmlDeRespuesta.body.innerhtml = .responseText End With With htmlDeRespuesta.GetElementsByTagName("table")(0) For row = 1 To .Rows.Length - 1 For col = 0 To .Rows(row).Cells.Length - 1 ActiveCell.Cells(row + 1, col + 1).Value = .Rows(row).Cells(col).innerText Next col Next row End With End Sub
agradecería mucho su ayuda, saludos