Extraer datos de una página web desde Microsoft Excel

Escrito por Administrador

28 de agosto de 2023

Vamos a ver hoy cómo extraer datos de un página web desde Microsoft Excel. Para darle un poco más de chicha a la cosa, vamos a realizarlo sobre datos dinámicos.

En la web https://www.expansion.com/mercados/euribor.html se publica a diario la evolución del euribor.

saber-usuarios-conectados-base-datos
La idea es que cada vez que abramos la hoja Excel, se recuperen los últimos datos publicados en la web y se registren en una tabla que tendremos preparada.
saber-usuarios-conectados-base-datos
El código asociado al objeto ThisWorkbook es el siguiente,
'Importamos los datos del precio diario del euribor en su hoja correspondiente

'Borramos los datos previos de la hoja

Sheets("Euribor").Activate

Range("AZ40:BB800") = ClearConntents

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;https://www.expansion.com/mercados/euribor.html", Destination:=Range( _
"$AZ$40"))
.Name = "euribor"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With

'Recorremos la fila sacando mes y día y pegandolo en la segunda hoja

For k = 40 To 800

If Cells(k, 1) = "Precio al cierre" Then

GoTo siguiente4

End If

Next

siguiente4:

For i = k + 2 To k + 10

mes = Month(Cells(i, 1))
dia = Day(Cells(i, 1))

Cells(i, 2).Copy

Cells(mes + 2, dia + 1).PasteSpecial Paste:=xlPasteValues

Next

End Sub

En el código, lo primero que hacemos es extraer la información de la web y pegarla en nuestra hoja de cálculo.

Posteriormente, localizamos la celda donde se encuentra la tabla con los últimos datos del euribor (justo detrás de la celda con el texto "Precio al cierre").

Finalmente, obtenemos el día y mes de cada fecha para almacenar el valor en la celda correcta del calendario.

saber-usuarios-conectados-base-datos
Espero que con este ejemplo hayas aprendido a extraer datos de una página web desde Microsoft Excel usando VBA. Descárgate el archivo de ejemplo y practica.

Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.

Hasta la próxima.

Si te ha servido y quieres donar

Descarga el archivo del ejemplo

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Últimas publicaciones

Categorías

febrero 2024
LMXJVSD
 1234
567891011
12131415161718
19202122232425
26272829 

Debates en el foro

Avatar
Access en una sola ventana
Avatar
Versiones frontend

Contacto