IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème de Format de cellules après un QueryTables URL [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Problème de Format de cellules après un QueryTables URL
    Bonjour à tous !

    Voila je me suis lancé sur un Side Project destinée à traiter des statistiques de matchs de Football.
    Mon projet avançait très bien jusqu'à la semaine dernière. Cela fait maintenant 5 jours que je suis a fond dessus et que je n'arrive pas à trouver de solution meme en retournant internet.

    Je me réfère donc à vous pour voir si vous avez une astuce pour contourner mon problème.

    J'effectue un QueryTables d'une page internet dans une feuille, tout se passe très bien sauf que je ne peux pas exploiter les résultats de matchs de la colonne D qui sont importé (du genre 02:01). Le format de la cellule est automatiquement transformé en Personnalisée hh:mm.
    Du coup impossible de faire un left des 2 premiers caractères.

    j'ai essayé de forcer le format avant importation de la page, et ca fonctionne pas.

    si quelqu'un a une idée pour contourner ce problème, je suis preneur.

    En vous remerciant par avance.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Public Sub Essai()
     
    With ActiveSheet.QueryTables.Add(Connection:="URL;" & "http://www.betexplorer.com/soccer/colombia/liga-aguila/cortulua-dep-cali/O0tDDRl7/", Destination:=Cells(1, 1))
        .FillAdjacentFormulas = False
        .PreserveFormatting = False
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells
        .SavePassword = False
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebFormatting = xlWebFormattingRTF
        .WebSelectionType = xlSpecifiedTables
        .WebTables = "1,2"
        .WebPreFormattedTextToColumns = False
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = True
        .WebDisableDateRecognition = True
        .WebDisableRedirections = True
        .Refresh BackgroundQuery:=False
        .WorkbookConnection.Delete
    End With
     
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Ok Excel convertie en time, mais indépendamment les données affichées sont bonne?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Txt=left(format(cells(1,1),"hh:mm"),2)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Wow c'est magique ! tu as résolu mon problème !

    effectivement, ca fait exactement ce que je veux. récupérer la valeur qui etait convertie.

    un grand merci !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MsgBox Left(Format(Cells(3, 4), "hh:mm"), 2)
    MsgBox Right(Format(Cells(3, 4), "hh:mm"), 2)
    je vais pouvoir dormir tranquille ce soir, et continuer mon projet. il va falloir que je révise la commande format.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    bonsoir
    une toute petite requête aurait bien pu faire l'affaire aussi

    en nettoyant le code source de la page de tout ce qui est superflu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub test1()
        URL = "http://www.betexplorer.com/soccer/colombia/liga-aguila/cortulua-dep-cali/O0tDDRl7/"
        Dim iedoc As Object, req As Object, e, i, truc, matable
        Set req = CreateObject("microsoft.xmlhttp")
        req.Open "post", URL, False
        req.send
        'MsgBox req.responsetext
        Set iedoc = CreateObject("htmlfile")
        With iedoc
            .write req.responsetext
            Set matable = .getelementsbytagname("table")
            For e = 0 To 1
                code = code & "<table>" & matable(e).getelementsbytagname("tbody")(1).outerhtml & "</table>" & vbCrLf
            Next
            Set truc = .getelementsbytagname("tr")
            For i = 0 To truc.Length - 1
                code = Replace(code, truc(i).Children(0).outerhtml, "")
            Next
            .body.innerhtml = code
            faire = .ParentWindow.clipboardData.SetData("text", code)
            With Sheets(1): .Cells(1, 1).Select: .Paste: .Columns("D:G").Delete Shift:=xlToLeft: End With
        End With
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour patricktoulon,

    très intéressant comme requête, je me met ça sous le coude pour du traitement de pages web car j'ai une autre page qui me posais quelques problèmes dont j'ai pu contourner autrement mais je vais l'essayer avec ta formule.
    par contre j'aurais encore été bloqué sur la récupération des résultats de matchs qui sont en format HH:MM.

    Et grâce à rdurupt, j'ai compris qu'il fallait pas que je me casse la tête a essayer de convertir en amont le format, mais plutôt de l'exploiter tel quel avec la bonne commande.

  6. #6
    Invité
    Invité(e)
    Par défaut
    il faut noter que si un matche durait plus de 24 heures nous serions passé au format date et là j'aurais opté pour une solution type Patrick! et même le risque existe pour un matche de 2 heure qui commence à 23 heures! en admettant que la duré soit calculé date Fin - date Début

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    c'est quoi le but du left 2

    si c'est pour justement calculer il y a datediff que tu peux adapter
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Je crois que là ce sont des résultats de matchs de foot. 2:0 veut dire le score est de 2 à 0
    Rapporté sur excel, il la considère comme une heure hh:mm.

    Bon là je devine
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Oui je pense que tu as raison mercatog, je m'en suis rendu compte après avoir posté,mais comme ça n'avait pas d'importance!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème format de cellule après import
    Par jorisfavre dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/02/2013, 15h16
  2. [XL-2010] Problème format de cellule après modification via userform
    Par r9titi dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/02/2012, 14h34
  3. Problème pour formater clé USB après formatage foireux
    Par DonkeyMaster dans le forum Composants
    Réponses: 1
    Dernier message: 08/04/2008, 07h58
  4. Problème de format de cellule (#NA)
    Par basto dans le forum Excel
    Réponses: 2
    Dernier message: 02/07/2007, 18h10
  5. Réponses: 15
    Dernier message: 26/12/2006, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo