Excelente, funciona muy bien. En esta ocasión tengo alrededor de 4mil URL y me está demorando demasiado que parece ya no ser viable, se puede hacer algo? para algo de 10 URL funciona veloz pero para los 4mil se lagea. Help!!
Has puesto algún punto de interrupción intermedio? Una consulta de 4.000 urls del tirón pueden tomarlo como un ataque por denegación y bloquearte. En función de lo que necesites quizás te interese hacer la consulta con la librería de Selenium para Excel (hay varios videos en el canal)
Claro. Ahí está la gracia. Corres de nuevo la macro y tienes de nuevo los precios. Y si quieres podrías montarte una base de datos y ver cómo varía el histórico de precio
Gracias por tomarte el tiempo de responder! Ya le hice, voy armando un pequeño proyecto que me propuse, solo tengo una pequeña consulta... Se puede hacer algo para que al momento de Extraer el HTML las celdas se queden del mismo tamaño? Porque cada vez que llega la nueva data las filas crecen en tamaño e incomoda para ver la data. No se si me deje entender ..😁😁 Gracias por tus aportes!
El ancho de fila lo tendrás en automático y se autoajusta. Pon un ancho manual. Puedes dejar fijado el mismo ancho. Es decir, si por defecto tienes 15 de ancho. Selecciona todas las filas que quieras y pones 15 de ancho. Es el mismo ancho, pero ha dejado de ser automático
Hola te agradezco el video pero tengo una pregunta estoy importando un valor de una pagina web y quiero ir acumulandolos es desir ese valor que importo cambia todos los dias yo quiero ir guardando el valor diario como puedo hacer eso? el valor del dia 1 en casilla 1, el valor del dia 2 en casilla 2 y asi como hago eso? saludos 🙂
Hola qwerty! Me recuerdas a mi contraseña ☺ Puedes hacer un bucle con un For que coja el valor que quieras y lo pegue en la celda que quieras y que esta vaya creciendo. En este vídeo se hace algo parecido, coge una serie de datos y los mete en la última fila de datos de tu base de datos: ua-cam.com/video/hXTXRUPCXMQ/v-deo.html
Se supone que esta explicación está más sencilla que la del otro video pero igual no lo entendí. Me confunde desde que se dice que se podría copiar el código fuente, lo copia efectivamente pero... ¿dónde lo pega? Y luego de dónde salen las distintas hojas ¿se crearon con la prueba de la macros? Lo mejor sería ir creando el ejemplo con una hoja en blanco y ver todos los pasos haciéndose y no ya hechos. Agradezco la explicación reiterada pero lamentablemente para usarios que solo conocemos lo muy básico del excel se nos hace harto complicado.
Gracias Dany por comentar. Lamento que la explicación no te haya servido la explicación. Es uno de los primeros vídeos que hice, ahora, como bien comentas, empiezo en una hoja nueva todas las explicaciones para que sea más sencillo
@@AprendizdeExcel Resulta que estuve revisando vídeos que explicaran las fórmulas extraer y hallar que jamás había visto antes y gracias a esto el interesante tutorial suyo se me hace más entendible sin dejar de ser muy complicado además de poco nítido ya que no hay zoom para que uno descifre las fórmulas. De hecho tengo que repetir varias veces una secuencia no ya para entenderla, que también, si no para ver realmente qué se escribió allí. En fin, tras muchas horas de intentarlo estoy siguiendo los pasos pero me quedo atascado en un error de la fórmula que le solicito por favor tenga a bien corregirme: (Es el fragmento que corresponde al 4:40 del vídeo) La parte del código que espero extraer está en la celda A3. La primera celda donde se encuentran los datos extraídos de la macro está en la celda B1. Por tanto la fórmula que escribo es: =EXTRAE(B1,HALLAR,B1,5000) pero me sale un mensaje de error que dice que falta un paréntesis de cierre. ¿Podría ayudarme por favor? ¡Muchas gracias!
Hola Dany, en los primeros vídeos tenía poca experiencia de grabación y edición. Mi pantalla es grande y al grabarlo se veía bien, pero si lo pones en pantallas más pequeñas se ve peor. Ahora los grabo de otra forma e intento mostrar los atajos de teclado como comandos en los vídeos. Te invito a que veas los últimos vídeos para ver si se aprecia la diferencia. Dicho lo cuál, gracias por tus observaciones. Y ahora la pregunta. La función Extrae saca parte de un texto de una celda, para eso pides 3 parámetros: La celda de dónde quieres sacar los datos El número inicial El número de caracteres que quieres Por lo que entiendo de lo que has puesto la celda de donde sacas los datos es B1, por tanto el primer argumento debería ser B1. Para sacar el número inicial debes calcularlo previamente. Eso lo podemos hacer con hallar. Los parámetros de hallar: Texto buscado En qué celda Número inicial (es opcional y será desde la primera celda si no pones nada). Por lo que yo entiendo la referencia la tienes en A3, por lo que la fórmula podría ser algo así: Hallar(A3,B3) Y para que tu fórmula funcionara deberías poner algo así: =EXTRAE(B1,Hallar(A3,B3),5000) Aquí es importante que tengas en cuenta que el hallar te devuelve la posición dónde empieza, quizás debas jugar con +1 y -1 para ajustar que saque exactamente lo que necesitas Espero que te sirva
Si tú, de forma manual, le das a ver código fuente de la página (control + U) en Chrome, ¿qué te aparece? Lo normal es que al ejecutar la macro te salga eso. Otra cosa es que esté montado con java o alguna historia y la mitad de los datos no los tengas, pero se debería descargar algo. Si no descarga nada es problema al ejecutar el comando. ¿Ingresas las URL en la primera columna y las seleccionas antes de ejecutar la macro?
@@AprendizdeExcel Cuando inspecciono desde la web puedo verlo sin problema, pudiendo fijarme en las clases, etiquetas y demás. El problema es que al ejecutar el comando se encuentra con un captcha por lo que puedo leer en lo que llega a la Excel y, evidentemente, no sale nada de las clases.
¿Qué URL quieres sacar? ¿La seleccionas antes de lanzarla? ¿Tienes libre las celdas que vas a usar? ¿Has probado a ver el código de la página antes de usar la macro?
Hola, prueba a meterle la instrucción Application.Wait Algo así podría ser para dos segundos: Sub ExtraerHTML(): On Error Resume Next Dim CodigoHTML As Variant Application.ScreenUpdating = True For Each Url In Selection With CreateObject("MSXML2.XMLHTTP") .Open "GET", Url, False .Send CodigoHTML = .ResponseText y = 1 For x = 1 To (Int(Len(CodigoHTML) / 32500)) + 1 y = y + 1 Cells(Url.Row, y) = Mid(CodigoHTML, ((x - 1) * 32500) + 1, 32500) Next
End With Application.Wait (Now + TimeValue("00:00:02")) Next
Combinando la función servicioweb + xmlfilter se puede hacer algo así, creo. Dentro del código HTML se puede ubicar el texto que querramos con la ubicación xpath. Aún lo sigo intentando pero no se hacerlo.
Si, es un método más profesional, pero se requiere un mayor conocimiento de VBA. Este ejemplo es para extracciones sencillas y sacar los datos con fórmulas de texto (algo sencillo para niveles intermedios de Excel). Aún no tengo grabado un vídeo con el otro método. Lo tengo en tareas pendientes Gracias por comentar Kevin!
@@AprendizdeExcel Te interesaría desarrollar una macro para que, con el xpath, se puedan ubicar fácilmente los datos dentro del HTML? Otra opción es transformar con una macro, un HTML a XML, y listo. Quedo atento y lo hacemos juntos.
@@kevinbarrena9843 Lo tengo pendiente de desarrollar. Tengo un amigo que tiene descargas de dos webs resueltas Es ponerme con él y hacerlo para después poder montar un vídeo. Gracias igualmente!
Hola buenas tardes, muy interesantes los videos, y sobretodo estoy aprendiendo realizando ejercicios, estuve viendo este video y el anterior. Tengo unas preguntas ya que quiero sacar la información de tablas de la pagina soccerway solo me permite sacar informacion de "Tabla Forma" y requiero infomacion de la "Tabla Ancha", vi sus videos y no logro bajar dicha información ojala y me pueda orientar. Saludos desde México.
En principio con este método no puedes sacar ese contenido. Ese contenido se muestra de forma dinámica con una función javascript Tendrías que cargar primero la página y sobre esa página cargada ejecutar un código para simular el click que quieres por javascript. Yo esto último no se hacerlo. Pregunto a un amigo a ver si sabe hacerlo y te digo Mientras tanto prueba a buscar esos mismos datos en otra web. Suerte!
Demasiado tramite, para extraer datos de una pagina web, y si el usuario no sabe lo del codigo inspeccionar se demora mas tiempo, deben hacer videos sencillos con formulas a tal manera que el usuario normal pueda comprender, lo siento pero es basura lo que esta en el video, por muy bueno que este el material para un usuario general es basura.
Si os ha gustado este vídeo podéis ver más en el Curso de Excel experto
cutt.ly/pjRGyKh
Excelente, funciona muy bien. En esta ocasión tengo alrededor de 4mil URL y me está demorando demasiado que parece ya no ser viable, se puede hacer algo? para algo de 10 URL funciona veloz pero para los 4mil se lagea. Help!!
Has puesto algún punto de interrupción intermedio?
Una consulta de 4.000 urls del tirón pueden tomarlo como un ataque por denegación y bloquearte.
En función de lo que necesites quizás te interese hacer la consulta con la librería de Selenium para Excel (hay varios videos en el canal)
que buen video, lo seguí al pie de la letra y me funcionó, lo voy a practicvar muchas veces, para aprendermelo bien. Gracias
Gracias Arnaldo!
Me alegro que te haya funcionado.
Gracias por comentar 😊
Hola, a mi no me funciono ni genera errores, tengo office 2016.
Podrías compartirme tu archivo para verificar, por favor.
Muy buena info!
Pero una gran duda, si alguno de esos productos .. cambia de precio..
SE ACTUALIZA EN EL EXCEL ???
Claro. Ahí está la gracia.
Corres de nuevo la macro y tienes de nuevo los precios.
Y si quieres podrías montarte una base de datos y ver cómo varía el histórico de precio
Gracias por tomarte el tiempo de responder!
Ya le hice, voy armando un pequeño proyecto que me propuse, solo tengo una pequeña consulta...
Se puede hacer algo para que al momento de Extraer el HTML las celdas se queden del mismo tamaño? Porque cada vez que llega la nueva data las filas crecen en tamaño e incomoda para ver la data. No se si me deje entender ..😁😁
Gracias por tus aportes!
El ancho de fila lo tendrás en automático y se autoajusta.
Pon un ancho manual. Puedes dejar fijado el mismo ancho.
Es decir, si por defecto tienes 15 de ancho. Selecciona todas las filas que quieras y pones 15 de ancho. Es el mismo ancho, pero ha dejado de ser automático
Hola te agradezco el video pero tengo una pregunta estoy importando un valor de una pagina web y quiero ir acumulandolos es desir ese valor que importo cambia todos los dias yo quiero ir guardando el valor diario como puedo hacer eso? el valor del dia 1 en casilla 1, el valor del dia 2 en casilla 2 y asi como hago eso? saludos 🙂
Hola qwerty! Me recuerdas a mi contraseña ☺
Puedes hacer un bucle con un For que coja el valor que quieras y lo pegue en la celda que quieras y que esta vaya creciendo.
En este vídeo se hace algo parecido, coge una serie de datos y los mete en la última fila de datos de tu base de datos:
ua-cam.com/video/hXTXRUPCXMQ/v-deo.html
Gracias
Se supone que esta explicación está más sencilla que la del otro video pero igual no lo entendí. Me confunde desde que se dice que se podría copiar el código fuente, lo copia efectivamente pero... ¿dónde lo pega? Y luego de dónde salen las distintas hojas ¿se crearon con la prueba de la macros? Lo mejor sería ir creando el ejemplo con una hoja en blanco y ver todos los pasos haciéndose y no ya hechos. Agradezco la explicación reiterada pero lamentablemente para usarios que solo conocemos lo muy básico del excel se nos hace harto complicado.
Gracias Dany por comentar.
Lamento que la explicación no te haya servido la explicación.
Es uno de los primeros vídeos que hice, ahora, como bien comentas, empiezo en una hoja nueva todas las explicaciones para que sea más sencillo
@@AprendizdeExcel Resulta que estuve revisando vídeos que explicaran las fórmulas extraer y hallar que jamás había visto antes y gracias a esto el interesante tutorial suyo se me hace más entendible sin dejar de ser muy complicado además de poco nítido ya que no hay zoom para que uno descifre las fórmulas. De hecho tengo que repetir varias veces una secuencia no ya para entenderla, que también, si no para ver realmente qué se escribió allí. En fin, tras muchas horas de intentarlo estoy siguiendo los pasos pero me quedo atascado en un error de la fórmula que le solicito por favor tenga a bien corregirme: (Es el fragmento que corresponde al 4:40 del vídeo)
La parte del código que espero extraer está en la celda A3.
La primera celda donde se encuentran los datos extraídos de la macro está en la celda B1.
Por tanto la fórmula que escribo es: =EXTRAE(B1,HALLAR,B1,5000) pero me sale un mensaje de error que dice que falta un paréntesis de cierre. ¿Podría ayudarme por favor? ¡Muchas gracias!
Hola Dany, en los primeros vídeos tenía poca experiencia de grabación y edición. Mi pantalla es grande y al grabarlo se veía bien, pero si lo pones en pantallas más pequeñas se ve peor. Ahora los grabo de otra forma e intento mostrar los atajos de teclado como comandos en los vídeos. Te invito a que veas los últimos vídeos para ver si se aprecia la diferencia. Dicho lo cuál, gracias por tus observaciones.
Y ahora la pregunta.
La función Extrae saca parte de un texto de una celda, para eso pides 3 parámetros:
La celda de dónde quieres sacar los datos
El número inicial
El número de caracteres que quieres
Por lo que entiendo de lo que has puesto la celda de donde sacas los datos es B1, por tanto el primer argumento debería ser B1.
Para sacar el número inicial debes calcularlo previamente. Eso lo podemos hacer con hallar. Los parámetros de hallar:
Texto buscado
En qué celda
Número inicial (es opcional y será desde la primera celda si no pones nada).
Por lo que yo entiendo la referencia la tienes en A3, por lo que la fórmula podría ser algo así:
Hallar(A3,B3)
Y para que tu fórmula funcionara deberías poner algo así:
=EXTRAE(B1,Hallar(A3,B3),5000)
Aquí es importante que tengas en cuenta que el hallar te devuelve la posición dónde empieza, quizás debas jugar con +1 y -1 para ajustar que saque exactamente lo que necesitas
Espero que te sirva
Hola buenas, de las webs que necesito extraer datos ninguna macro consigue extraer el html, ¿por qué puede ser?
Si tú, de forma manual, le das a ver código fuente de la página (control + U) en Chrome, ¿qué te aparece?
Lo normal es que al ejecutar la macro te salga eso. Otra cosa es que esté montado con java o alguna historia y la mitad de los datos no los tengas, pero se debería descargar algo.
Si no descarga nada es problema al ejecutar el comando.
¿Ingresas las URL en la primera columna y las seleccionas antes de ejecutar la macro?
@@AprendizdeExcel Cuando inspecciono desde la web puedo verlo sin problema, pudiendo fijarme en las clases, etiquetas y demás. El problema es que al ejecutar el comando se encuentra con un captcha por lo que puedo leer en lo que llega a la Excel y, evidentemente, no sale nada de las clases.
Si te salta un captcha poco se puede hacer con este método...
Hola, a mi no me funciono, ni genera errores, tengo office 2016.
Podrías compartirme tu archivo para verificar, por favor.
¿Qué URL quieres sacar?
¿La seleccionas antes de lanzarla?
¿Tienes libre las celdas que vas a usar?
¿Has probado a ver el código de la página antes de usar la macro?
No funciona, prodrïas revisar si actualmente sigue funcionando la macro?
Hola, cual seria la macros si quiero que se ejecute cada "n" segundos?
Hola, prueba a meterle la instrucción Application.Wait
Algo así podría ser para dos segundos:
Sub ExtraerHTML():
On Error Resume Next
Dim CodigoHTML As Variant
Application.ScreenUpdating = True
For Each Url In Selection
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", Url, False
.Send
CodigoHTML = .ResponseText
y = 1
For x = 1 To (Int(Len(CodigoHTML) / 32500)) + 1
y = y + 1
Cells(Url.Row, y) = Mid(CodigoHTML, ((x - 1) * 32500) + 1, 32500)
Next
End With
Application.Wait (Now + TimeValue("00:00:02"))
Next
Combinando la función servicioweb + xmlfilter se puede hacer algo así, creo. Dentro del código HTML se puede ubicar el texto que querramos con la ubicación xpath. Aún lo sigo intentando pero no se hacerlo.
Si, es un método más profesional, pero se requiere un mayor conocimiento de VBA.
Este ejemplo es para extracciones sencillas y sacar los datos con fórmulas de texto (algo sencillo para niveles intermedios de Excel).
Aún no tengo grabado un vídeo con el otro método. Lo tengo en tareas pendientes
Gracias por comentar Kevin!
@@AprendizdeExcel Te interesaría desarrollar una macro para que, con el xpath, se puedan ubicar fácilmente los datos dentro del HTML?
Otra opción es transformar con una macro, un HTML a XML, y listo.
Quedo atento y lo hacemos juntos.
@@kevinbarrena9843 Lo tengo pendiente de desarrollar. Tengo un amigo que tiene descargas de dos webs resueltas
Es ponerme con él y hacerlo para después poder montar un vídeo.
Gracias igualmente!
Hola esta excelente, duda como puedo extraer los datos de la pagina de UPS??
Por ejemplo el estatus de este paquete: 1ZV80W552091133407
Hola buenas tardes, muy interesantes los videos, y sobretodo estoy aprendiendo realizando ejercicios, estuve viendo este video y el anterior. Tengo unas preguntas ya que quiero sacar la información de tablas de la pagina soccerway solo me permite sacar informacion de "Tabla Forma" y requiero infomacion de la "Tabla Ancha", vi sus videos y no logro bajar dicha información ojala y me pueda orientar. Saludos desde México.
En principio con este método no puedes sacar ese contenido.
Ese contenido se muestra de forma dinámica con una función javascript
Tendrías que cargar primero la página y sobre esa página cargada ejecutar un código para simular el click que quieres por javascript.
Yo esto último no se hacerlo. Pregunto a un amigo a ver si sabe hacerlo y te digo
Mientras tanto prueba a buscar esos mismos datos en otra web.
Suerte!
Demasiado tramite, para extraer datos de una pagina web, y si el usuario no sabe lo del codigo inspeccionar se demora mas tiempo, deben hacer videos sencillos con formulas a tal manera que el usuario normal pueda comprender, lo siento pero es basura lo que esta en el video, por muy bueno que este el material para un usuario general es basura.