Problème de virgules dans un code VBA

Bonjour,

j'utilise le bout de code ci-dessous depuis plusieurs années pour récupérer les cours de bourses sur les pages de Bourso .

avant = "<div class=""c-ticker__item c-ticker__item--value"">"
apres = "<span class="

page : https://www.boursorama.com/cours/1rPENX/

image image

depuis quelques semaines il ne prend plus ce qui se trouve après la virgule , alors que jusqu'à présent cela fonctionnai très bien.

Il est censé m'écrire dans ma cellule : 94,30

Hors depuis quelques semaines il m'écrit : 94

Une idée ?

Merci pour votre aide

bonjour,

Ce "bout de code" est bien insuffisant.

Si possible

A+

Bonjour,

voici le fichier exemple contenant sa macro

Merci

17kfc.xlsm (60.69 Ko)

bonjour,

essaie ceci

Sub MajCotations()

    Sheets("COTATIONS").Select
    Dim i%, k%, URL$, COT, j%, l%
    k = Cells(Rows.Count, [REF].Column).End(xlUp).Row
    Range(Cells(2, [cotation].Column), Cells(k, [cotation].Column)).Clear

    avant = "<div class=""c-ticker__item c-ticker__item--value"">"
    apres = "<span class="

    On Error Resume Next
    For i = 2 To k
        DoEvents
        ReDim COT(1 To k, 1 To 1)
        COT(1, 1) = Cells(i, [cotation].Column).Value
        URL = Cells(i, [www].Column).Value
        Application.StatusBar = "Mise à jour des cotations en cours …"
        On Error Resume Next
        With CreateObject("MSXML2.XMLHTTP")
            .Open "GET", URL, False
            .Send
            If .Status = 200 Then COT(i, 1) = Val(Replace((Split(Split(.responsetext, avant)(1), apres)(0)), ",", "."))
        End With
        Application.StatusBar = False
        Cells(i, [cotation].Column).Value = COT(i, 1)
    Next

    ActiveWorkbook.RefreshAll
    Sheets("COTATIONS").Select
End Sub

Bonjour,

Un grand merci pour ton aide , je n'aurais pas réussi à recréer le découpage

ancienne version :

If .Status = 200 Then pera(i, 1) = Val(Split(Split(.responsetext, avant)(10), apres)(0))

apres correction de h2so4 :

If .Status = 200 Then COT(i, 1) = Val(Replace((Split(Split(.responsetext, avant)(1), apres)(0)), ",", "."))

Encore merci pour ton aide et cette corrections du code :-)

bonjour,

Apparemment le site (Bourso) devrait avoir remplacé le point décimal par une virgule décimale dans l'affichage du cours, pour VBA un nombre décimal doit contenir un point pour séparer la partie entière de la partie décimale (et non une virgule). J'ai donc ajouté une instruction qui remplace la virgule par un point.

Merci pour tes explications

Rechercher des sujets similaires à "probleme virgules code vba"