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 :

Comprendre ligne de code d'une VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Juillet 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Juillet 2015
    Messages : 37
    Par défaut Comprendre ligne de code d'une VBA
    Bonjour à tous,

    Je vous contact pour que vous m'aidiez à comprendre les lignes de code suivante tiré d'un code VBA. Je voudrais en quelque sorte avoir des commentaire par ligne pour comprendre qu'elle est l'action que cette ligne réalise.

    Voila 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
    Sub test4()
        Columns("B:B").NumberFormat = "dd/mm/yyyy hh:mm:ss"
       '--- Déclaration des données ---
       Dim ReQ, URL, coupe, compte, lig
       '--- Récupération de URL ou sont situés les données ---
        URL = "http://aguila-bidart.fr/demo/ISSY/webservice.php?ndDay=31"
        Set ReQ = CreateObject("microsoft.xmlhttp")
        ReQ.Open "POST", URL, False:    ReQ.send
        coupe = Split(ReQ.responsetext, "Mesure"":" & Chr(34))
        lig = 1
        For i = 1 To UBound(coupe)
            compte = compte + 1
        '--- Coupe le texte grâce à "split" pour avoir seulement les infos qui nous intéressent  ---
            donnée = Split(coupe(i), Chr(34))(0)
        '--- Change la date unix en date normal dd/mm/yyyy hh:mm:ss ---
           Cells(lig, compte) = IIf(compte < 2, "%" & donnée, (donnée / 86400) + CDbl(CDate("1/1/1970") + (1 / 24)))
            If compte = 2 Then lig = lig + 1: compte = 0
         Next
    End Sub

    Je vous remercie par avance pour votre aide.

    Cordialement,
    Dodinouche

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Un clic sur NumberFormat et un appui sur

    Un clic sur CreateObject et un appui sur

    Un clic sur Set et un appui sur

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir Early ou Late Binding
    Images attachées Images attachées  

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Avec un peu plus de commentaires :
    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
     
    Sub test4()
     
        'défini le format pour toute la colonne B
        Columns("B:B").NumberFormat = "dd/mm/yyyy hh:mm:ss"
     
        'ici, toutes les variables ne sont pas explicitement typées, elles sont donc de type "Variant"
        Dim ReQ, URL, coupe, compte, lig
     
        '--- Récupération de URL ou sont situés les données ---
        URL = "http://aguila-bidart.fr/demo/ISSY/webservice.php?ndDay=31"
     
        'crée un objet microsoft.xmlhttp pour une requête sur un serveur
        Set ReQ = CreateObject("microsoft.xmlhttp")
     
        'exécute la requête
        ReQ.Open "POST", URL, False: ReQ.send
     
        'récupère dans un tableau les différentes valeurs qui sont séparées par les bornes "Mesure"":" & Chr(34)
        coupe = Split(ReQ.responsetext, "Mesure"":" & Chr(34))
     
        lig = 1
        'boucle sur le tableau...
        For i = 1 To UBound(coupe)
            compte = compte + 1
            '--- Coupe le texte grâce à "split" pour avoir seulement les infos qui nous intéressent ---
            donnée = Split(coupe(i), Chr(34))(0)
            '--- Change la date unix en date normal dd/mm/yyyy hh:mm:ss ---
            Cells(lig, compte) = IIf(compte < 2, "%" & donnée, (donnée / 86400) + CDbl(CDate("1/1/1970") + (1 / 24)))
            If compte = 2 Then lig = lig + 1: compte = 0
        Next
     
    End Sub
    mais il est vrai que l'appui sur F1 (en ayant mis le curseur sur le mot) donne déjà une bonne part des réponses que l'on souhaite !

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Juillet 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Juillet 2015
    Messages : 37
    Par défaut Merci
    Je vous remercie tous pour votre aide tout est beaucoup plus clair.

    Bon courage et à bientôt.

    Dodinouche

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

Discussions similaires

  1. Ligne de code à intégrer dans VBA de recherche
    Par Inguyone dans le forum Excel
    Réponses: 3
    Dernier message: 02/08/2015, 15h57
  2. Compter les lignes de code d'une source python
    Par yacinechaouche dans le forum Général Python
    Réponses: 6
    Dernier message: 18/06/2012, 10h12
  3. Réponses: 3
    Dernier message: 25/03/2010, 09h47
  4. Ligne de code pour une série
    Par jmbonnaz dans le forum MATLAB
    Réponses: 1
    Dernier message: 09/02/2007, 14h56
  5. Réponses: 7
    Dernier message: 19/12/2006, 12h11

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