INSERTAR NAVEGADOR WEB EN HOJA EXCEL

Hoy quiero subir una entrada muy interesante y un poco distinta a las anteriores, se trata de la posibilidad de insertar el explorador web en una hoja Excel.

Para empezar a montar nuestro pequeño explorador tenemos que seleccionar la hoja en la que vamos a insertar la herramienta. Será la “hoja1” de un libro cualquiera de Excel.

En la parte superior vamos a colocar un botón de comando del cuadro control de formulario (Pestaña “Programador”>”Insertar”>”Controles de formulario”) y lo vamos a llamar “Navegador”. Seguidamente seleccionamos unas cuantas celdas, en este caso desde “D3” a “K3” y las combinamos, (aquí será donde escribamos la ruta de las páginas web a consultar). Os debería quedar algo así:

Ahora que tenemos la forma, podemos ir al fondo de la cuestión. Para que todo esto funcione debemos insertar el controlador Microsoft Web Browser en la hoja1. Para ello vamos a (Pestaña “Programador”>”Insertar”>”Control activeX”) .Pulsamos en el símbolo de las herramientas que pone más controles. Se nos abrirá un cuadro de diálogo y debemos buscar y seleccionar Microsoft Web Browser:


Una vez que pulsemos y aceptemos, automáticamente se activa la pestaña de “Modo Diseño” y pulsamos en la hoja y seleccionamos el área que queremos para que el explorador muestre los contenidos, una ve que tengamos el área bien definida, desactivamos el “Modo Diseño”.

 
Ahora que tenemos la hoja lista, es el momento de hacer unos cuantos ajustes en la programación. Entramos en Visual Basic y nos vamos a la “hoja1” y escribimos el siguiente código:

Private Sub WebBrowser1_StatusTextChange(ByVal Text As String)
End Sub
Sub Verificarmapa()
'Decimos que el navegador lea la celda D3 de la Hoja1 y nos muestre la web que hemos escrito.
WebBrowser1.Navigate2 Sheets("Hoja1").Range("D3").Value
End Sub

Cerramos VBA y nos vamos a la hoja1 y con el botón derecho del ratón seleccionamos el Botón que habíamos hecho llamado “Navegador”. Elegimos la macro que se llama “Verificarmapa” y ejecutamos. El resultado sería este:

Y esto ha sido todo por hoy. En la próxima entrada trataré algo parecido pero un poco más elaborado, os propondré un calculador de distancias basado en Google Maps.

Como siempre os dejo el archivo para que echéis un vistazo y podáis examinarlo con calma.

Saludos.

Descarga el archivo pulsando enINSERTAR NAVEGADOR

 

Anuncios

24 pensamientos en “INSERTAR NAVEGADOR WEB EN HOJA EXCEL

  1. Pingback: UTILIZAR GOOGLE MAPS COMO UNA HERRAMIENTA EN EXCEL | Excel Signum

  2. Buen día!!! De qué forma puedo modificar el rango de celdas donde se muestra el navegador? Quisiera que fuese más pequeño para trabajar simultaneamente en la misma hoja con datos extraidos de la Web incrustada. Cómo puedo enviarte un archivo para que lo revises? Realmente muy agradecido por compartir tus conocimientos de manera desinteresada. He tomado varios de tus ejemplos y los he adaptado a mi trabajo diario. Cada día aprendiendo más!!!! Saludos desde Barquisimeto Lara Venezuela!!!!

    Me gusta

  3. Hola Pedro,

    Puedes enviar el archivo a excelsignum@yahoo.es indicando el tamaño que necesitas y también te indicaré como modificarlo. De todas formas, el tamaño del WebBrowser lo puedes modificar cambiándolo a modo diseño (entras en la pestaña programador, luego pulsas en la opción “modo diseño” y ya podrías modificar el tamaño.

    Muchas gracias por el comentario. Y efectivamente, todos los días son una oportunidad de aprender 🙂

    Saludos

    Me gusta

    • Hola nuevamente!!!! Apenas escribí mi duda continué “cacharreando” hasta que logré lo que deseaba. La Web que utilizo es para verificar número de “RIF” de clientes ( es un número de identificación fiscal) y trabajo facturas de clientes que necesito verificar el “RIF” pero en archivos cada vez diferentes. Cómo le puedo hacer para insertar esta Web-consulta ó llamarla cada vez que necesite verificar un número de RIF? Me consume tiempo salir del Excel, abrir el navegador, abrir la consulta, consultar el RIF, copiarlo y regresar a Excel para pegarlo. Qué me sugieres??

      Me gusta

  4. Hola Pedro,

    Además de la alternativa a invocar la web que utilizas directamente en la hoja excel y hacerla más pequeña (como has hecho). Solo existe otra alternativa, y es mediante una consulta desde la página a la web, mediante código.

    Ahora bien, hay cierto problema dado que esa página seguramente tenga la necesidad de escribir un código antes de realizar la consulta para obtener el dato y así evitar programas como este. Tendría que ver cuál es la página a la que deseas realizar la consulta y luego verificar si es posible realizar el trabajo.

    No obstante, creo que con la alternativa que tienes (webbrower) insertado. Un saludo!

    Le gusta a 1 persona

  5. Hola, me ha gustado el post, lo hice rapido y sencillo, gracias, yo quisiera saber si una vez que se hace todo este proceso de insertar el navegador, habría alguna manera de poder obtener datos de dentro de ese navegador, de alguna pagina que consulte, poder extraer con una macro algo que se copie de ese navegador. Lo intente y no me sale. Estoy trabajando en hacer un juego de adivinar palabras en excel, lo que quisiera es buscar los significados o sinonimos de esas palabras del juego en el navegador.

    Me gusta

    • Hola Ginés,

      Según me comentas, no es necesario que incrustes el navegador en la página de Excel. Lo que necesitas es una macro que busque en la web un sinónimo de una palabra. Esto lo puedes hacer con esta macro:

      Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
      Sub SINONIMO()
      Dim dato As String
      Dim sinonim As String
      Dim ie As Object
      sinonim = Sheets(1).Range("A2").Value
      DoEvents
      Set ie = CreateObject("InternetExplorer.Application")
      ie.navigate ("http://www.wordreference.com/sinonimos/" & sinonim)
      Dim x As Integer
      x = 0
      Do Until ie.Busy = False
      Sleep 50
      x = x + 1
      Loop
      dato = ie.Document.getElementById("article").innertext
      ie.Quit
      Sheets(1).Range("A4").Value = dato
      End Sub

      He escogido wordreference.com para buscar los sinónimos. De todas formas te envío la macro en archivo por correo. Espero que te sirva.

      Saludos.

      Me gusta

      • Gracias, lo revisare y quizas tenga que acomodarlo a mi proyecto, muchas gracias , seguro que me va a servir. Otra pregunta, tengo varios textbox dentro de un formulario de vba, donde escribo una letra dentro de cada textbox y seguidamente pasa al siguiente, como puedo poner una macro para poder usar la tecla de retroceso y que vaya al anterior en caso de que me equivoque al poner una letra?Gracias de antemano, el proyecto va sobre un juego donde hay que adivinar palabras, y lo de los sinonimos es para que te de pistas de esa palabra.

        Me gusta

        • Hola Ginés, Perdona por la espera (aprovecho el tiempo del fin de semana para disfrutar de mi peque, que por la semana siempre me falta tiempo :).

          Una posible solución (se podrían investigar más métodos) sería esta, teniendo en cuenta que tu formulario es userform1 y los textbox van hasta de 1 a 4:

          Coloca este código directamente en el userform, y cada vez que pulses retroceso, pasará del textbox actual al anterior:

          Private Sub textbox2_Keyup(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
          If KeyCode = 8 Then box1
          End Sub
          Private Sub textbox3_Keyup(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
          If KeyCode = 8 Then box2
          End Sub
          Private Sub textbox4_Keyup(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
          If KeyCode = 8 Then box3
          End Sub

          Function box1()
          UserForm1.TextBox1.SetFocus
          End Function
          Function box2()
          UserForm1.TextBox2.SetFocus
          End Function
          Function box3()
          UserForm1.TextBox3.SetFocus
          End Function

          Saludos!!

          Me gusta

  6. Buenos días,
    Necesito de tu ayuda. Estoy siguiendo cada uno de los pasos para insertar el Navegador Web, sin embargo al insertar Microsoft Web Browser, me arroja una alerta que dice “No se puede insertar el Objeto” y la Fx que aparece es =INCRUSTAR(“Shell.Explorer.2″;””)… No se que puede ser lo que me impida realizar la inserción. Quedo a la espera de tu ayuda.

    Me gusta

    • Hola Adolfo,

      Lo que te sucede no es un problema de tu equipo ni de cómo lo estas haciendo, es un problema de las actualizaciones, en concreto de la actualización de seguridad MS14-082 de office.

      Microsoft ofrece la siguiente solución:
      https://support.microsoft.com/es-es/kb/3025036

      Normalmente se soluciona con lo descrito en la parte del artículo que comienza por: Control de extensores desusados.

      Espero que puedas solucionar el problema.

      Saludos.

      Me gusta

    • Hola Aeonics,

      Exactamente, qué tipo de datos quieres pasar de un webbrowser a un formulario?, Es posible que lo que intentes realizar es descargar datos de una web en un formulario?.

      Saludos.

      Me gusta

        • Hola Aeonicss:

          Bueno, para realizar lo que comentas, es decir, desde una hoja excel enviar datos a un formulario en una web, puedes utilizar una macro en la que deberás identificar los ID o Name de cada textbox del formulario y trasladar la información.

          En este ejemplo, envío el nombre de esta web al cuadro de búsqueda de google y luego ejecuto el click para la búsqueda:

          Dim IE As Object
          Sub ejecutar()
          Application.ScreenUpdating = False
          Set IE = CreateObject("InternetExplorer.Application")
          IE.Navigate "https://www.google.es"
          Do Until IE.ReadyState = 4
          DoEvents
          Loop
          Application.Wait (Now + TimeValue("0:00:01"))
          IE.Document.getElementById("lst-ib").Value = "Excel Signum"
          Application.Wait (Now + TimeValue("0:00:01"))
          IE.Document.getElementById("_fZl").Click
          IE.Visible = True
          Set IE = Nothing
          Application.ScreenUpdating = True
          End Sub

          Por ello, debes identificar los ID o Name y configurar la macro para tu proyecto.

          Saludos.

          Me gusta

  7. Hola que tal
    Tengo una duda amigo, he llegado hasta el paso donde se me habilita la opcion de “Design Mode” y tengo que delimitar el area donde se mostrara o arrojara los datos de la pagina web pero al momento de delimitar el area me aparece un cuadro de dialogo donde menciona que no se puede insertar el objeto, que es lo que ocasiona que no se inserte?

    Me gusta

¿Te ha gustado?. Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s