Jump to content

Galactico

Members
  • Content Count

    28
  • Joined

  • Last visited

About Galactico

  • Rank
    Member

Converted

  • Campos
    ,

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Buenas, estoy tratando de automatizar un carro de compras para armarlo con macro, hasta el momento puedo abrir una web, seleccionar algún item por posición en el codigo fuente y agregarlo al carro, se que voy bien encaminado, Sub test() Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") With IE .Top = 0 .Left = 0 .height = 1000 .Width = 1050 .Visible = True .Navigate "https://store.channelfireball.com/catalog/magic_singles-saga_block-urzas_saga/duress/17412" Do While .Busy Or Not .ReadyState = 4: DoEvents: Loop .Document.getElementsByClassName("add-to-cart-form")(0).getAttribute("NM-Mint, English")(0).getElementsByClassName("qty")(0).Value = "3" .Document.getElementsByClassName("utility-button add-to-cart")(0).getAttribute("NM-Mint, English")(0).Click End With End Sub pero no logro dar con el resultado que quiero. en el código, si elimino la parte ".getAttribute("NM-Mint, English")(0)" la macro se ejecuta utilizando la posición del botón en el código fuente, puede rellenar el campo de cantidad y apretar el botón para agregar al carro, pero necesito realizar un pequeño filtro por el texto que contiene el elemento (no utilizar la posición), en este caso "NM-Mint, English" o "Slightly Played, English," en algunos casos, el orden de estos varia, dependiendo de cada articulo que este mirando, por lo que no puedo utilizar posición, debo realizar algún filtro, agradecería mucho su ayuda. saludos
  2. @Antoni muchísimas gracias, funciono a la perfección. saludos
  3. Hola @Leopoldo Blancas gracias por tu respuesta, idealmente tengo que lograr realizar los reemplazos, sin cambiar el formato de la celda, si lo hago, solo se cambia el guion por un punto de forma visible, ya que si copio el valor de la celda, esta mantendrá los guiones saludos
  4. hola, estoy tratando de realizar reemplazos, todo bien hasta que estoy tratando de reemplazar una celda que corresponde a una fecha, tengo que cambiar el "-" por "." pero no logro realizarlo, puedo realizar cualquier cambio de otro texto, incluso en esas mismas casillas. agradecería cualquier tipo de ayuda. gracias Book1.xlsm
  5. Hola José_Santos gracias por tu respuesta que método me recomendarías para comenzar a incursionar en esto del web scrapping? por elmomento solo se utilizar lo que estoy mostrando. muchas gracias
  6. entiendo, pero como es un intranet, solo puedo abrir la web si estoy conectado al internet de mi empresa, pero tengo una situación idéntica buscando en cualquier web, por ejemplo Lentes de Sol como deberia utilizar el getelements, para hacer click en un color u otro en esos lentes de sol sin utilizar una posición numerica? muchas gracias nuevamente por tu ayuda
  7. hola, leí lo que sale en el blog, pero solo pude llegar a esto para reducir el campo de búsqueda .Document.getElementsByClassName("add-to-cart-form")(0).getElementsByClassName("qty")(0).Value = "1" no me resulta agregar mas cosas quedo atento, gracias por tu ayuda
  8. Hola! muchas gracias, funciono a la perfección. tengo una consulta adicional, para tratar de hacer funcionar la macro que quiero utilizar, en la parte .getElementsByName("q" )(0) como podría cambiar el valor (0), por una característica en la linea de código y no buscar por posición?. en especifico, necesito trabajar con el siguiente código: <form class="solicitar" data-vid="309827" data-name="HojaSeguridad" data-id="11968" data-variant="Rojo"> <div class="product-price-qty"> <span class="regular price">$1.99</span> </div> <div class="qty-submit"> <input class="qty" max="5" name="qty" size="1" tabindex="1" type="number" value="1"> <input class="utility-button add-to-cart" name="commit" type="submit" value=""> </div> </form> en la macro actualmente utilizo la siguiente linea para hacer click en el botón. .Document.getElementsByClassName("utility-button add-to-cart")(0).Click pero en este caso necesito filtrar por el color rojo (data-variant="Rojo"), ya que en la pagina donde quiero utilizar la macro (es una pagina de intranet de mi empresa para solicitar materiales) para un mismo material, me aparecen varios botones iguales, que solo difieren en el color del material a solicitar, he intentado de varias formas, pero he podido dar con algo que resulte. espero se entienda lo que quiero realizar y agradecería nuevamente su ayuda. saludos.
  9. Hola, como estan? estoy tratando de utilizar una macro para realizar búsquedas en internet (google específicamente), pero no logro dar con el texto del código fuente para insertarlo en la linea de código. agradecería mucho que me dieran una mano, gracias Sub LoginGOOGLE() Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") With IE .Top = 0 .Left = 0 .Height = 1000 .Width = 1250 .Visible = True .Navigate "https://www.google.com/" Do While .Busy Or Not .ReadyState = 4: DoEvents: Loop .Document.getelementbyid("gLFyf gsfi").Value = "buscar lo que sea en google" .Document.getelementbyid("Buscar con Google").Click End With End Sub saludos
  10. buenas, tengo la siguiente macro para obtener los comentarios en los datos de una tabla, entiendo mas o menos como funciona, pero tengo problemas para obtener los comentarios de 2 tablas distintas en una misma hoja, solo me obtiene los comentarios de la primera tabla la macro crea un archivo nuevo con todos los comentarios, a partir de otro archivo que posee los datos y comentarios, comienza a analizar las celdas desde el rango E3, en resumen necesito que la macro recorra las filas hasta la ultima fila con dato de la hoja, para obtener los comentarios. Sub pasadatos() Dim detfec(60) As Date Range("B3").Select nomdir = ActiveCell.Value Range("C3").Select nomrec = ActiveCell.Value nomarc = nomdir & "\" & nomrec Range("d3").Select hojent = ActiveCell.Value Workbooks.Open Filename:=nomarc, UpdateLinks:=0 Sheets(hojent).Select ActiveCell.SpecialCells(xlLastCell).Select colpos = ActiveCell.Column filpos = ActiveCell.Row Range(Cells(filpos, 1), Cells(filpos, 1)).Select fiyrev = ActiveCell.Value filpos = filpos + 1 Range(Cells(filpos, colpos), Cells(filpos, colpos)).Select Selection.End(xlDown).Select filpos = ActiveCell.Row Range(Cells(filpos, 3), Cells(filpos, 3)).Select Selection.End(xlUp).Select lindej = ActiveCell.Row Windows("pasadatos.xlsm").Activate Range("B2").Select nomdir = ActiveCell.Value Range("C2").Select nomarc = ActiveCell.Value nomdir = nomdir & "\" & nomarc Range("d2").Select hojent = ActiveCell.Value Workbooks.Open Filename:=nomdir, UpdateLinks:=0 Sheets(hojent).Select Range("E3").Select fecrev = ActiveCell.Value colpos = ActiveCell.Column While fecrev <> "Mes" canfec = canfec + 1 detfec(canfec) = fecrev colpos = colpos + 1 Range(Cells(3, colpos), Cells(3, colpos)).Select fecrev = ActiveCell.Value Wend colpos = colpos - 1 Range("D4").Select defrev = ActiveCell.Value filpos = ActiveCell.Row While defrev <> "" Range(Cells(filpos, 3), Cells(filpos, 3)).Select carrev = ActiveCell.Value Range(Cells(filpos, 2), Cells(filpos, 2)).Select arerev = ActiveCell.Value Range(Cells(filpos, 1), Cells(filpos, 1)).Select equrev = ActiveCell.Value hordet = "" comdet = "" colpos = 5 For ind = 1 To canfec Range(Cells(filpos, colpos), Cells(filpos, colpos)).Select hordet = Range(Cells(filpos, colpos), Cells(filpos, colpos)).Value On Error Resume Next comdet = Range(Cells(filpos, colpos), Cells(filpos, colpos)).Comment.Text If Len(comdet) > 0 Then Windows(nomrec).Activate lindej = lindej + 1 Range(Cells(lindej, 14), Cells(lindej, 14)).Select ActiveCell.Value = comdet comdet = "" Range(Cells(lindej, 1), Cells(lindej, 1)).Value = fiyrev Range(Cells(lindej, 2), Cells(lindej, 2)).Value = Month(detfec(ind)) Range(Cells(lindej, 3), Cells(lindej, 3)).Value = detfec(ind) Range(Cells(lindej, 4), Cells(lindej, 4)).Value = equrev Range(Cells(lindej, 6), Cells(lindej, 6)).Value = hordet Range(Cells(lindej, 9), Cells(lindej, 9)).Value = arerev Range(Cells(lindej, 10), Cells(lindej, 10)).Value = carrev Range(Cells(lindej, 11), Cells(lindej, 11)).Value = defrev Windows(nomarc).Activate End If colpos = colpos + 1 Next ind filpos = filpos + 1 Range(Cells(filpos, 4), Cells(filpos, 4)).Select defrev = ActiveCell.Value Wend End Sub agradecería cualquier tipo de ayuda
  11. hola, tengo una columna con varias casillas con texto, necesito que cada casilla con varias palabras se desglose en casillas separadas, con una palabra por casilla por ejemplo https://imgur.com/a/I8qhVdV tengo el siguiente codigo para hacerlo Public Function SepararEnColumnas(Rango As Range, intPosicion As Integer, strSeparador As String) Dim vSeparar As Variant Application.Volatile vSeparar = Split(Rango.Value, strSeparador) SepararEnColumnas = Trim(vSeparar(intPosicion - 1)) End Function pero necesito que sea una macros, no una funcion, tampoco quiero usar separador (que sea un espacio esta bien) agradezco mucho su ayuda
  12. alguien que me pueda dar una mano? gracias
  13. hola, tengo el siguiente macros para obtener datos de una pagina web, pero no logro obtener los datos, necesito ambos precios si es posible (que serian en este caso "NM-M $0.49" y " PLD-SP $0.25") si no es posible obtener ambos datos, el primero también me sirve. desde ya muchas gracias. Sub test1() Dim htmlDeRespuesta As Object Dim o As Object Set htmlDeRespuesta = CreateObject("htmlFile") With CreateObject("msxml2.xmlhttp") .Open "Get", "https://www.abugames.com/magic-the-gathering/singles/product-detail/Cho%252DManno,-Revolutionary-%252D-FOIL/Mercadian-Masques/English/", False .send htmlDeRespuesta.body.innerhtml = .responsetext End With For Each o In htmlDeRespuesta.all If LCase(o.classname) = "row not-first" Then Range("c4").Value = o.innertext Exit For End If Next End Sub
  14. buenas, tengo el siguiente macros para obtener datos de internet Sub KaladeshCK1() Application.ScreenUpdating = False On Error Resume Next web = "http://www.cardkingdom.com/mtg/kaladesh/Torrential-Gearhulk" principio = "itemAddToCart NM active" Final = "<div class=""dropdown"">" Set XML = CreateObject("Microsoft.XMLHTTP") XML.Open "POST", web, False XML.send texto = XML.responsetext posicion1 = InStr(texto, principio) posicion2 = InStr(texto, Final) dato = Mid(texto, posicion1, (posicion2 - posicion1)) Range("k4") = "Torrential Gearhulk" If Err = 0 Then Cotizacion = Split(dato, "<span class=""stylePrice""> $") Range("l4") = Trim(Left(Cotizacion(1), 6)) Else Application.ScreenUpdating = False On Error Resume Next principio = "itemAddToCart outOfStock NM active" Final = "<div class=""outOfStockNotice"">" Set XML = CreateObject("Microsoft.XMLHTTP") XML.Open "POST", web, False XML.send texto = XML.responsetext posicion1 = InStr(texto, principio) posicion2 = InStr(texto, Final) dato = Mid(texto, posicion1, (posicion2 - posicion1)) If Err = 0 Then Cotizacion = Split(dato, "<span class=""stylePrice""> $") Range("l4") = Trim(Left(Cotizacion(1), 6)) 'cambiar color de celda 'Range("d4").Interior.ColorIndex = 3 Range("l4").Font.ColorIndex = 3 End If End If Set XML = Nothing Application.ScreenUpdating = True End Sub pero tengo problemas para obtener el valor que quiero de esta pagina (con otras paginas me anda bien) , y no se como arreglarlo, agradecería mucho si alguien me pudiera ayudar a obtener este valor (el precio) muchas gracias!
  15. gracias por tu respuesta, si al parece esta difícil la cosa, pero crees que se pueda lograr? de ser así, en que tipo de funciones o que cosa tendría que empezar a aprender? no se mucho de macros, pero leyendo y con youtube he aprendido mucho (ya estoy leyendo sobre que es OCR). muchas gracias
×
×
  • Create New...

Important Information

Privacy Policy