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 :

Excel - Json et sa toison ( importation ) [XL-2007]


Sujet :

Macros et VBA Excel

  1. #21
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 44
    Par défaut
    arf voila j'arrive apres la guerre

    même pas encore ouvert mon fichier excel

    oui Replace & Split j'aime bien

    je vais faire comment vous je vais faire mon petit bout de code tt de même et le poster ! le post ne sera pas mis en resolu avant

    ( je regarderai ensuite vos codes .... )

    la méthode des expressions rationnelles, deux Pattern
    je ne suis pas sur d'avoir la nécessite de cela ( je bricole pus que je ne code )

    on voit que vous n'avez pas encore vu mes bouts de code vba ( lourd et plein de truc qui servent a rien )


    Patrick
    trouver les urls des entraîneurs du jour n'est pas un soucis pour moi ( mais c'est tres gentil a toi de t'en soucier )

    vu que j'appelle déjà cette page via un autre module il me suffit d’adapter le lien et le tour est jouée

  2. #22
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Tout dépend déjà de la représentation finale des données, n'étant toujours pas exposée …
    Dans l'attente de décrypter la publication de ton code !


    Citation Envoyé par fifi5622 Voir le message
    déjà je travail sur xp et excel 2007 (oui bah j'aime bien mais bon j'ai un autre pc avec windows 10 et excel 2007 )

    ceci explique peut etre que certains codes de patricktoulon ne fonctionne pas chez moi
    A noter :   mes codes sont créés sous Excel 2003, même ceux de la discussion en lien dans le post initial !

  3. #23
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 44
    Par défaut
    bon bon
    voici mon bout de code

    vous allez pas etre decu

    bon déjà j'ai un souci avec les caractères spéciaux

    je n'ai pas trouvé de solution simple pour y remédier ( a part faire un replace avec ts les codes éèà.... )


    et j'ai pas fini car pas grand intérêt de continuer puisque je répète le principe autant de fois que nécessaire

    bon j' attend les critiques

    j'ai enlever id du cheval car sans intérêt pour moi , par contre il est préférable d'avoir le nom du cheval écrit correctement )

    edit : comment je vais exploiter la chose je ne sais pas encore ... j'ai les infos dont j'ai besoin

    et un grand merci a vous pour votre aide et implication

  4. #24
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Il est préférable de poster le code balisé via l'icône #

    Sinon je n'ai aucun caractère spécial avec le lien pour cet entraîneur !
    S'il s'agit d'un autre entraîneur, indique-moi son identifiant …

  5. #25
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 44
    Par défaut
    hop hop hop

    moi cheval >>> aurore de maã«l >> vous 2 >> Aurore de Maël


    allez le code .....

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    Sub trainer()
     
    Dim lien
    Dim brut, nomtablo, t1, t2, t3, t4, t5
    Dim j
     
    ActiveSheet.Cells.Clear  ' nettoyage de la page active
     
    lien = "http://www.geny.com/flux-donnees-fiche-entraineur?id_entraineur=1004963"
     
    ' ah oui changé le nom de la feuille 
     
        With Sheets("Ftrainer").QueryTables.Add(Connection:="URL;" & lien, Destination:=Range("A1"))
                .BackgroundQuery = False
                .RefreshStyle = xlOverwriteCells
                .TablesOnlyFromHTML = True
                .WebDisableDateRecognition = True
                .PreserveFormatting = False
                .Refresh BackgroundQuery:=False
                .SaveData = True
            End With
     
                  ' importation en dur je sais pas faire autrement
     
     brut = [a1]
     
     
     '[a1] = "" ' j'efface mes betises
     [b1] = " % de Course gagnees "
     [c1] = " Nombre de course "
     [d1] = "Cheval "
     [E1] = "nbre de victoire"
     [f1] = " % de reussite a la place "
     [g1] = " nb de place "
     
       ' je split et je separe chaque ligne
     
     nomtablo = Split(brut, "reussiteVictoires")
    ' t2 = Split(brut, "%")(1)   ' non rien ....
     
    [a2].Select
     
    On Error Resume Next
     
     For j = 1 To UBound(nomtablo)
     
          ActiveCell.Offset(j - 1, 0) = nomtablo(j)
          t1 = ActiveCell.Offset(j - 1, 0)
      '  on separe les donnees
     
         t2 = Split(t1, "%")(0)
         t2 = Split(t2, Chr(34))(2)
         ' on cherche le 1er % puis ensuite on cherche les "" et on conserve le chiffre
     
         ActiveCell.Offset(j - 1, 1) = t2
         ' on rempli la colonne B
     
     
        ' idem ....
          t3 = Split(t1, "courses" & Chr(34) & Chr(58))(1)
          t3 = Split(t3, ",")(0)
         ActiveCell.Offset(j - 1, 2) = t3
     
          t4 = Split(t1, "nomCheval" & Chr(34) & Chr(58) & Chr(34))(1)
          t4 = Split(t4, Chr(34))(0)
     
          t4 = Application.WorksheetFunction.Clean(t4) ' ca marche pas  c'etais pour changer les caracteres speciaux
     
         ActiveCell.Offset(j - 1, 3) = t4
     
     
     Next j
     
    ' MsgBox t3 pour verifier en cours si besoin 
     
    End Sub

  6. #26
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour
    Pourquoi t'entête tu a utiliser un querytable???
    je l'ai en horreur ce truc c'est long ,lourd difficile selon le document importé a exploiter (ligne/colonne) etc.....
    et en plus ca te rallonge le temps de boulot puisque tu travaille sur sheets
    d'autant plus que il faut très souvent le manipuler en utf8 ou autre j'ai regardé dans le JSON c'est bien Maël

    que ce soit la version de Marc ou la mienne le résultat est quasi instantané je comprends pas ta démarche la ???

    l'object "Microsoft.xmlhttp" existe depuis la nuit des temps propre net sans bavure et tu récupère le document comme il est!! surtout

    voila un exemple encore plus simple vu la simplicité de tes JSONS
    on s'occupe que des sauts de ligne par cheval texttocolumn fait le reste tout seul "vive excel"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub testreq1()
        coupe = Array("reussiteVictoires", "idCheval", "courses", "nomCheval", "victoires", "reussitePlaces", "places", "{", "}", "]", ":", Chr(34))
        Cells(1, 1).Resize(1, UBound(coupe) - 4) = coupe
        URL = "http://www.geny.com/flux-donnees-fiche-entraineur?id_entraineur=1004963"
        Set Req = CreateObject("microsoft.xmlhttp")
        With Req: .Open "GET", URL, False: .send: code = Replace(Req.responsetext, ",", "|"): End With
        code = Replace(Split(code, "[{""reussiteVictoires""")(1), "reussiteVictoires", vbCrLf)
        For a = 0 To UBound(coupe): code = Replace(code, coupe(a), ""): Next
        ligne = Split(code, vbCrLf)
        With Cells(2, 1).Resize(118, 1)
            .Value = Application.Transpose(Split(code, vbCrLf))
            .TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, OtherChar:="|"
        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

  7. #27
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Patrick,
    même si nos codes sont plus efficaces, pour une fois qu'un demandeur respecte l'esprit de ce forum,
    à savoir développer !

    Il y a eu comme un contrat moral entre lui et moi du genre
    « avance un peu de ton côté, propose-moi un code puis je t'aiderai à optimiser » …

    Tu débarques comme un quignon de pain tombant dans l'assiette de soupe
    en balançant un code alors que le "contrat" semblait clair !

    Je préfère utiliser l'objet QueryTable si cela peut m'éviter de piloter IE
    ou en cas de galère avec les en-têtes d'une requête …

    Au passage ton code du post #20 déclenche de mon côté une erreur 9 sur la ligne de code n°8 !
    C'est la raison de mon code du post #23 …


    Fifi5622,
    sur ma version 2003 de tests QueryTable ne passe pas pour cette adresse;
    si besoin je regarderais sur une version d'Excel plus récente …

    Pour ton souci de conversion de caractères si la source est bien encodée en utf-8
    entre les lignes de code n°14 & 22 paramétrant la QueryTable insère cette ligne :

    .TextFilePlatform = -535 ' ou 65001

    Concernant ton code :

    • Ligne n°  8 : pour chipoter effacer uniquement les cellules utilisées au lieu de l'intégralité de la feuille
        en remplaçant Cells par UsedRange

    • Ligne n°14 : tu indiques la feuille "Ftrainer" pour la QueryTable mais pas pour la destination …
        Aucune incidence quand c'est la feuille active, du reste ActiveSheet peut remplacer Sheets("Ftrainer")

    • Ligne n°42 : à éviter et au lieu d'ActiveCell.Offset dans les lignes suivantes
        utiliser simplement la propriété Cells en lui passant les numéros de ligne et de colonne …

    • Ligne n°44 : est-elle vraiment nécessaire ?   Souvent on peut s'en passer pour contourner un problème.

    • Ligne n°68 : la fonction Clean n'est pas appropriée dans ton problème d'encodage du texte,
        consulter l'aide Excel de la fonction de feuille de calculs EPURAGE …

    Sinon félicitations car pour un débutant tu t'es pas mal débrouillé !
    J'attends ton retour avant de passer à l'étape suivante …

  8. #28
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 44
    Par défaut
    hop hop meme code version 1.1

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    Sub trainer()
     
    Dim lien
    Dim brut, nomtablo, t1, t2, t3, t4, t5
    Dim j, K
     
    [f].Select  ' important pour moi car ce module va etre integrer a d'autres  et donc
    'important d 'etre sur la bonne feuil
     
     
    [f].UsedRange.Rows("2:" & ActiveSheet.UsedRange.Rows.Count).EntireRow.ClearContents
    ' on va sur la  feuil F  ( Ftrainer ) encore ??? -  on selectionne et on efface le contenu des lignes rempli mais on garde
    ' les titres
     
    lien = "https://www.geny.com/flux-donnees-fiche-entraineur?id_entraineur=1004963"
     
        With ActiveSheet.QueryTables.Add(Connection:="URL;" & lien, Destination:=Range("A1"))
                .BackgroundQuery = False
     
           '     .TextFilePlatform = 65001  'erreur 1004 par objet ou par defnition
     
                .RefreshStyle = xlOverwriteCells
                .TablesOnlyFromHTML = True
                .WebDisableDateRecognition = True
                .PreserveFormatting = False
                .Refresh BackgroundQuery:=False
                .SaveData = True
     
            End With
     
                  ' importation en dur je sais pas faire autrement
     
     brut = [a1]
     
     
     
       ''  oui vu que l'on efface le contenu sauf la 1 ere ligne
       'on peux garder ca dans les  titres dans cellules de  la feuil [F]
     
    ' [b1] = " % de Course gagnees "
     '[c1] = " Nombre de course "
     '[d1] = "Cheval "
     '[E1] = "nbre de victoire"
    ' [f1] = " % de reussite a la place "
    ' [g1] = " nb de place "
     
     
       ' je split et je separe chaque ligne
     
     nomtablo = Split(brut, "reussiteVictoires")
     
     For j = 1 To UBound(nomtablo)
     
          ActiveCell.Offset(j - 1, 0) = nomtablo(j)
          t1 = ActiveCell.Offset(j - 1, 0)
      '  on separe les donnees
     
     
     
          K = j + 1 '  K c'est J en mieux mdr ...
     
     
         t2 = Split(t1, "%")(0)
         t2 = Split(t2, Chr(34))(2)
         ' on cherche le 1er % puis ensuite on cherche les "" et on conserve le chiffre
     
         Cells(K, "b") = t2
         ' on rempli la colonne B
     
        ' idem ....
          t3 = Split(t1, "courses" & Chr(34) & Chr(58))(1)
          t3 = Split(t3, ",")(0)
         Cells(K, "c") = t3
     
          t4 = Split(t1, "nomCheval" & Chr(34) & Chr(58) & Chr(34))(1)
          t4 = Split(t4, Chr(34))(0)
     
        Cells(K, "d") = t4    ' je prefere ecrire colonne "d" que colonne 3 ca me parle plus
     
     
     Next j
     
     
    ' MsgBox t3
     
     
    End Sub

    bon voila pour le nouveau code

    .TextFilePlatform = 65001 me donne un bug 1004' donc je n'ai tjs pas corrigé mon souci de caractères



    With ActiveSheet.QueryTables.Add(Connection:="URL;" & lien, Destination:=Range("A1"))
    .....
    brut = [a1]

    coller en a1 et reprendre le texte en a1 pour l'utiliser ( ya aurais pas une manip de trop la ? )
    mais je vois pas trop car " Destination " n'est pas tres cool avec moi y veux rien savoir d'autres !

  9. #29
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 44
    Par défaut
    bonjour

    Citation Envoyé par patricktoulon Voir le message
    Pourquoi t'entête tu a utiliser un querytable???
    juste parce que je sais pas encore faire autrement ! mais je vais regarder pour changer cela


    pourquoi je m' embête a coder alors que toi et Marc me proposer un code bien plus performant que le mien

    ( Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson . Confucuis )

    mon but n'est pas essayer de rivaliser avec vous niveau code mais de me débrouiller par moi même (comme cela après je pourrais extraire 1 ou 10 autres flux json de ce site ( et peut être même d'autres sites ) sans attendre que bonne âme comme toi me fasse un code parfait que je ne maîtriserai pas du tt et que je ne pourrais adapter au besoin

    je t'ai également laisse un message dans ta boite au lettres du forum

    mais merci de ton aide et respect pour tes codes


    Marc-L >>

    merci de ton aide et de ton soutien pédagogique

    suis prêt pour la suite ..... mais bon je ne cherche pas non plus a ce que excel me fasse un cafe chaud le matin 5 min avant que je me lève restons raisonnable

  10. #30
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Ligne n°12 : [f].UsedRange.Offset(1).ClearContents …   Et pourquoi pas Clear ?

    Après je m'arrête au problème des caractères pourtant réglé avec .TextFilePlatform = -535 dans plusieurs
    de mes codes, je vais tester sur une version d'Excel plus récente,
    peut-être manque-t-il une autre propriété …

  11. #31
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 44
    Par défaut
    pourquoi pas clear

    bah je sais pas trop ... je trouvais ca bien moi ...


    ma ligne 12

    [f].UsedRange.Rows("2:" & ActiveSheet.UsedRange.Rows.Count).EntireRow.ClearContents

    oui par contre je veux bien pour .TextFilePlatform = -535

  12. #32
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    bonsoir
    ( Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson . Confucuis )
    je ne t'ai pas donné de gigot mais je t'ai montré comment le chasser
    car sur la route tu rencontrera encore plein de bestiole avant d'être sur en foret et c'est pas marc qui va me contredire
    sachant et surtout!! ayant parcouru quelques JSONS seule 3 ou 4 ligne de code suffisent avec le bon objet bien sur

    querytable PFFFFFF
    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

  13. #33
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 161
    Billets dans le blog
    5
    Par défaut
    Désolé mais c'est un gigot que tu lui as filé, en ayant foi dans le fait qu'il réussira sa formation de boucher charcutier et sera capable de découper toute pièce de tout bétail

    Et il risque pas de savoir chasser si tu lui files un gibier déjà mort


    Ouais je me sauve, je troll là

  14. #34
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut RE
    HIHIHI
    TU EN EST SUR JOE§§§§§,,,, EGARDE BIEN ET SUIS
    J'AI DE JA REMARQUER 7 NYANCES DANS CES JSONS
    ON VA BIEN S4AMUSER A LE VOIR AUTOMATISER CA HIHIHIHIHI
    C4EST POUR CA QUE QUERYTABLE HEU..........
    EXCUSE 5MAJUSCULE (SMARTPHONE A LA CON)
    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

  15. #35
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 161
    Billets dans le blog
    5
    Par défaut
    J'ai bien regardé ton code, et je le trouve élégant en voyant les méthodes employées, et qui ont l'air d'être ôtées toute fioriture ou chemin détourné
    Les concaténations de lignes de codes avec des ":" c'est pas mon dada (puisque sujet sur les chevaux), mais c'est subjectif

    Mais, c'est maintenant certifié depuis le temps, je suis une véritable buse sur les joujoux VBA-Internet
    Alors j'ai bêtement lancé ton code depuis un classeur vierge, et il a planté lors du split de "code" en ligne 7, parce qu'à la ligne 6 la requête ne passe pas

    le reponsetext

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>403 Forbidden</title>
    </head><body>
    <h1>Forbidden</h1>
    <p>You don't have permission to access /flux-donnees-fiche-entraineur
    on this server.</p>
    <p>Additionally| a 500 Internal Server Error
    error was encountered while trying to use an ErrorDocument to handle the request.</p>
    </body></html>

    et le lien de ton code fourni très bien, je peux manuellement accéder à cette page et voir la matrice complète : http://www.geny.com/flux-donnees-fic...aineur=1004963

    Ps : don't feed the troll

  16. #36
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    et oui ca fait parti des 7 nuances
    selon les systèmes même avec ces JSONS simples il faut le (SetRequestHeader) de la requête sinon un bon Forbidhen!!!
    c'est pour cela que je bani d'office le querytable ingérable sur ce point si ce n'est qu'une sortie la Q... ENTE LES JAMBES COMME ON DIT CHEZ NOUS
    et oui!!!..... il est loin de manger du gigot le bonhomme hihihi
    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

  17. #37
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 44
    Par défaut
    Marc , je reprend ce que tu as dit

    <<

    Au passage ton code du post #20 déclenche de mon côté une erreur 9 sur la ligne de code n°8 !
    C'est la raison de mon code du post #23 … >>


    pour le code de Patrick essaye en modifiant un peu le lien et

    ajoute un S a http >>> https://www. ( cette trouvaille n'est pas de moi )

    peut être bien j'aurai tt de meme un petit bout de viande a manger ce midi ....

  18. #38
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Pas mieux de mon côté : cela mouline un temps puis j'ai une erreur « mémoire insuffisante » …


    Sinon pour QueryTables j'ai essayé avec un autre ordinateur avec Excel 2010
    et là je ne peux carrément pas accéder au lien des données avec un message « accès interdit » !
    Du coup je me demande si TextFilePlatform est réservé aux fichiers textes et pas pour des URL …


    Les expressions rationnelles peuvent être efficacement combinées à la fonctionnalité d'Excel Convertir
    (voir la ligne de code n°25 ci-dessous), les données sources étant séparées par une virgule,
    il suffit juste au préalable de nettoyer le fichier via deux masques (Pattern) avec ici une reconstitution des titres
    pour obtenir le même résultat de ma précédente démonstration :
    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
    26
    27
    Sub DemoRegExp()
             Dim T$, N&, SP$()
             ActiveSheet.UsedRange.Clear
        With CreateObject("MSXML2.XMLHttp")
            .Open "GET", "http://www.geny.com/flux-donnees-fiche-entraineur?id_entraineur=1004963", False
            .setRequestHeader "DNT", "1"
            .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64)"
             On Error Resume Next
            .send
             On Error GoTo 0
            If .Status = 200 Then T = .responseText Else Beep: Exit Sub
        End With
        With CreateObject("VBScript.RegExp")
             .Global = True
             .Pattern = "{.+\[|}|\]"
              T = .Replace(T, "")
             .Pattern = """[^""]*"":|"""
        With .Execute(Split(T, ",{")(0))
            For N& = .Count - 1 To 0 Step -1:  T = Replace$(.Item(N).Value, """:", ",") & T:  Next
        End With
                SP = Split(.Replace(T, ""), ",{")
        End With
        With [A1].Resize(UBound(SP) + 1)
            .Value = Application.Transpose(SP)
            .TextToColumns Comma:=True
        End With
    End Sub

    Pour ceux désirant changer l'ordre des colonnes ou désirant ne pas toutes les importer
    l'étape suivante montrera comment le réaliser en accédant directement à une structure objet json …

  19. #39
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    Joli le regex Marc

    mais quand même 3 fois plus long que replace/split

    demo avec replace /split et suppression de colonnes

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub Demo_replace_split()
        Dim T$, N&, SP$(), colonnes, colsuppr, E$, CS%
        colonnes = Array("reussiteVictoires", "idCheval", "courses", "nomCheval", "victoires", "reussitePlaces", "places")    'les entetes
        colsuppr = Array("idCheval")    'les colonnes a suprimer
        ActiveSheet.UsedRange.Clear
        With CreateObject("MSXML2.XMLHttp")
            .Open "GET", "http://www.geny.com/flux-donnees-fiche-entraineur?id_entraineur=1004963", False
            .setRequestHeader "DNT", "1"
            .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64)"
            On Error Resume Next
            .send
            On Error GoTo 0
            If .Status = 200 Then T = .responseText Else Beep: Exit Sub
        End With
        'on coupe le debut
        T = Split(T, "[{")(1)
        '
        'on remplace les guillemets et et croche droite
        T = Replace(Replace(T, Chr(34), ""), "},", "")
        '
        'on suprime la/les colonne(s) correspondante(s) l'array colonnes(colSuppr)
        For CS = 0 To UBound(colsuppr)
            CsuPPr = Split(T, colsuppr(CS) & ":")
            For i = 0 To UBound(CsuPPr)
                T = Replace(T, colsuppr(CS) & ":" & Split(CsuPPr(i), ",")(0) & ",", "")
            Next
            '
            ' on en profite en meme temps de supprimer les entetes colonnes correspondante a l'array (colSuppr)
            E = Replace(Join(colonnes, ","), colsuppr(CS) & ",", "")
        Next
        '
        ' on enleve les autres intitulées de colonnes dans les données
        For i = 0 To UBound(colonnes): T = Replace(T, colonnes(i) & ":", ""): Next
        '
     
        'on pose le tableau
        SP = Split(E & "{" & T, "{")
        With [A1].Resize(UBound(SP) + 1)
            .Value = Application.Transpose(SP)
            .TextToColumns Comma:=True
        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

  20. #40
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Ah bon c'est long chez toi ?!
    De mon côté c'est instantané, même au démarrage de Windows, pas de différence avec mon Split / Replace du post #20 …

    Et fifi5622 ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Test si une ligne excel est vide avant d'importer le ficher
    Par skillipo dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/11/2007, 12h25
  2. [Access/Excel] Manque de ressource pour importation
    Par t1marlartiste dans le forum Access
    Réponses: 2
    Dernier message: 10/07/2007, 11h11
  3. Réponses: 6
    Dernier message: 22/09/2006, 11h50
  4. Import data d'Excel ds 2 table lié par clé primaire
    Par lord_paco dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 10/05/2005, 10h31
  5. [VB.NET] Import donnes d'excel : chiffres et lettres
    Par JohnGT dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/10/2004, 19h53

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