Excel - base de dato

 
Vista:
sin imagen de perfil

base de dato

Publicado por marcos (4 intervenciones) el 02/06/2022 01:56:47
hola tengo una base de dato de articulos que uso frecuentemente para realizar presupuesto me gustaría poder actualizar los precio desde la pagina web de los proveedores conocen alguna funcion o codigo que me permite linkiar la celda con ese precio del articulo muchas gracias de ante manos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Nolberto
Val: 84
Ha aumentado su posición en 6 puestos en Excel (en relación al último mes)
Gráfica de Excel

base de dato

Publicado por Nolberto (121 intervenciones) el 03/06/2022 17:32:58
Eso depende de como proporciona los datos tu proveedor, si es una api, entonces se puede generar un cliente en excel que consulte los datos, pero eso depende de principalmente de como devuelve la información esa api.

Si el proveedor no tiene una api como tal, pero tiene una pagina web con la tabla de precios, puedes extraer esa tabla en tu excel y luego hacer referencia a esa tabla desde la que tu tienes y devolver el dato correcto para cada producto.

Este es un ejemplo sobre consultas web desde excel ( existen mas opciones)
https://formulasexcel.com/consultar-tablas-web-en-excel/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

base de dato

Publicado por marcos (4 intervenciones) el 03/06/2022 20:48:51
Gracia por tu respuesta aquí te dejo una imagen de cómo se visualiza la página hubiera Sido bueno así como dice si tuviera una tabla pero lo que quiero es que el precio del iten este elanzado a la celda de ese producto en concreto y se actualice según ellos lo hagan
Screenshot_2022-06-03-14-45-50-594_com.android.chrome comentario pero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Nolberto
Val: 84
Ha aumentado su posición en 6 puestos en Excel (en relación al último mes)
Gráfica de Excel

base de dato

Publicado por Nolberto (121 intervenciones) el 04/06/2022 17:20:31
Cual es la url del producto?

Aquí habría que hacer algo llamado "scraping", básicamente es obtener el html de la pagina y procesarla para obtener el dato, esto identificando el elemento html donde esta contenido el precio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

base de dato

Publicado por marcos (4 intervenciones) el 04/06/2022 17:42:45
Hola aquí te dejo la URL https://americana.com.do/departamentos/maderas/000001089554.html

Y gracias por responder.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Nolberto
Val: 84
Ha aumentado su posición en 6 puestos en Excel (en relación al último mes)
Gráfica de Excel

base de dato

Publicado por Nolberto (121 intervenciones) el 04/06/2022 21:49:46
Este código puede ser la base para tu solución, lo he probado y funciona.

En el proyecto vba, es necesario hacer referencia a 2 librerías.
Microsoft HTML Object Library
Microsoft XML v6.0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Function ObtienePrecioProductoWeb(url As String, IdProducto As String) As Variant
    Dim httpRequest As XMLHTTP60
    Dim doc As HTMLDocument
    Dim precio As Double
 
    Set httpRequest = New XMLHTTP60
    Set doc = New HTMLDocument
 
    httpRequest.Open "GET", url, False
    httpRequest.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    httpRequest.Send
 
    If httpRequest.Status = 200 Then
        doc.body.innerHTML = httpRequest.responseText
        precio = doc.getElementById(IdProducto).getAttribute("data-price-amount")
        ObtienePrecioProductoWeb = CDbl(precio)
    Else
        ObtienePrecioProductoWeb = "Error de comunicación"
    End If
End Function

En la celda donde se quiere obtener el precio, se pone esta formula.
1
=ObtienePrecioProductoWeb(B2,C2)

En B2 se pone la url del producto.
En C2 va el Id del producto, ese Id se obtiene a mano en la pagina del producto, se da click derecho sobre el precio -> Inspeccionar, se ve algo así:

id-prod

Esto es lento porque se hace una petición al servidor de la pagina de cada producto, así que depende de que tan rápido se de la respuesta del servidor, es por esto que seria bueno desactivar el calculo automático de la hoja y usar F9 para recalcular cuando sea necesario.

Así se ve el resultado en la hoja.

formula-excel-precio-de-producto-web
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

base de dato

Publicado por marcos (4 intervenciones) el 05/06/2022 02:09:12
muchas gracias eres un grande¡¡¡ funciono muy bien. tengo una duda se ira actualizado siempre y cuando solo cambie el precio en la pagina y la estructura siga igual. muchas gracias de verdad....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Nolberto
Val: 84
Ha aumentado su posición en 6 puestos en Excel (en relación al último mes)
Gráfica de Excel

base de dato

Publicado por Nolberto (121 intervenciones) el 05/06/2022 20:17:10
En tanto en la pagina no se modifique el Id del elemento que hace referencia al producto y el atributo "data-price-amount", entonces siempre dará el precio que se ponga en ese atributo, si el Id o el atributo se modifican, entonces ya no funcionara, habrá que revisar de nuevo en la pagina y hacer el cambio en la tabla y macro para referenciar los datos correctos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar