1. #41
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Consultant technique et formateur en recherche active pour le Canada
    Inscrit en
    juillet 2007
    Messages
    11 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Consultant technique et formateur en recherche active pour le Canada
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 11 386
    Points : 25 191
    Points
    25 191

    Par défaut

    Salut,

    pour les tests unitaires, que je mets dans le meme sac des tests de non regression (s'assurer que le fait de modifier un bout de code ne fait pas tomber un autre domino ailleurs dans ton outil.

    Une solution pratique est de passer dans la mesure du possible par des fonctions a la place des procedures, ce afin de pouvoir recuperer une valeur en sortie.

    Une fonction de retour booleen suffit a faire ensuite des tests.

    Cote manipulation de cette info tu pourras travailler avec par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Piou()
     
    End Sub
    qui deviendra
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function Piou() as Boolean
    'code qui plante
    Piou = False
    'code qui marche
    Piou = True
    End Function
    et cote tests automatises :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Piou = True
    Des que tu as un False sur tes egalites => pb de regression
    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  2. #42
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2016
    Messages : 36
    Points : 7
    Points
    7

    Par défaut

    @Jean-Philippe André :

    Bonjour Jean-Philippe André

    Avec ton exemple je vois comment mettre en place un test unitaire (régression).
    Via une fonction booléenne, ça me paraît plutôt "facile", je pense essayer cela rapidement.

    Mais ce que je cherche maintenant à savoir faire avant de réaliser ces tests unitaires c'est :

    Augmenter le nombre de module (= atomiser mon code en plusieurs codes dans plusieurs modules) sans pour autant augmenter le nombre de boutons.
    Les futurs utilisateurs ne connaissent rien en VBA et surtout plus il y a de boutons, plus le risque qu'ils se trompent (même si il y a une procédure etc etc) est grand.
    Je suis actuellement avec 3 boutons sur mon fichier (Remise à zéro du fichier / Création des graphiques / Création des graphiques ciblés) et j'aimerai ne pas dépasser ce nombre.

  3. #43
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Consultant technique et formateur en recherche active pour le Canada
    Inscrit en
    juillet 2007
    Messages
    11 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Consultant technique et formateur en recherche active pour le Canada
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 11 386
    Points : 25 191
    Points
    25 191

    Par défaut

    Hum,

    pour les boutons, as-tu cree un userform ? si tu veux proposer une plus-value graphique, cree un ruban personnalise
    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  4. #44
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 10 339
    Points : 25 398
    Points
    25 398
    Billets dans le blog
    4

    Par défaut

    Salut.

    Si tes utilisateurs doivent manger une pomme et que ton appli doit leur préparer la pomme, tu auras un seul bouton manger une pomme.

    Mais toi, tu sais que pour qu'ils mangent la pomme, il faut la rincer, l'éplucher, ... Donc tu vas découper ton code en fonction de la responsabilitéde chaque fonction dans le traitement. La fonction de nettoyage doit rincer la pomme et l'essuyer, pas l'éplucher... Et la fonction Manger la pomme à la responsabilité de chaîner les actions qui permettront à l'utilisateur de la manger.

    Ton code va donc avoir le look suivant et tu stockeras ces procédures dans le module Pomme:
    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 MangerLaPomme() ' Procédure appelée par clic sur le bouton
    RincerLaPomme
    EplucherLaPomme
    OffirLaPomme
    End Sub
     
    Sub RincerLaPomme()
    ...
    End Sub
     
    sub EplucherLaPomme()
    ...
    ...
    End Sub
     
    Sub OffrirLaPomme()
    ...
    ...
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié l'intervention => Merci pour le
    ---------------

  5. #45
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 10 339
    Points : 25 398
    Points
    25 398
    Billets dans le blog
    4

    Par défaut

    Citation Envoyé par Jean-Philippe André Voir le message
    Hum,

    pour les boutons, as-tu cree un userform ? si tu veux proposer une plus-value graphique, cree un ruban personnalise
    A ce stade de son apprentissage, je lui proposerais de se contenter de boutons sur la feuille Excel... ... Même si ton conseil est très judicieux pour professionnaliser son appli par la suite...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié l'intervention => Merci pour le
    ---------------

  6. #46
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2016
    Messages : 36
    Points : 7
    Points
    7

    Par défaut

    @Jean-Philippe André :

    Non du tout, je n'utilise pas d'UserForm, pour mon cas, je n'en vois pas l'utilité.
    Même si ça fait plus joli, mon code est à 95% du tri, organisation et traitement de données.
    Il n'y a donc rien à faire apparaître à l'utilisateur à part quelques Inputbox pour renommer les graphiques ou choses du genre.

    @Pierre Fauconnier :

    Bonjour Pierre, j'ai compris ta remarque mais je ne vois pas comment je peux appeler à l'aide d'un bouton un module... ?
    D'après ton exemple ce serait :
    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
     
    ' Je place le programme nommé : "Manger une pomme" dans le Module 1 qui est renommé : Pomme
    ' Puis j'intègres les différents programmes : 
     
    Sub Manger une pomme
    Acheter une pomme
    Rincer une pomme
    Eplucher une pomme
    End Sub
     
    'JUSTE AU DESSUS, je ne vois pas comment je peux appeler mes différents Sub qui se trouvent EN DESSOUS, pour que "Sub Manger une pomme" réalise l'ensemble des étapes et donc que je relie un seul bouton à ce Sub là.
     
     
    Sub Acheter une pomme
    Code ..... 
    End Sub
     
    Sub Rincer une pomme
    Code ..... 
    End Sub
     
    Sub Eplucher une pomme
    Code ..... 
    End Sub

  7. #47
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2017
    Messages : 31
    Points : 43
    Points
    43

    Par défaut

    Pour appeler un sub, il suffit d'utilise un Call

    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 Manger une pomme
    Call Acheter une pomme
    Call Rincer une pomme
    Call Eplucher une pomme
    End Sub
     
    Sub Acheter une pomme
    Code ..... 
    End Sub
     
    Sub Rincer une pomme
    Code ..... 
    End Sub
     
    Sub Eplucher une pomme
    Code ..... 
    End Sub

  8. #48
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 10 339
    Points : 25 398
    Points
    25 398
    Billets dans le blog
    4

    Par défaut

    Tu n'appelles pas le module. Tu appelles la fonction MangerLaPomme qui elle-même appelle les fonctions qui préparent le fruit dans un ordre logique.

    L'intérêt est que tu peux concentrer tes tests sur chaque fonction spécifique. Par exemple, tu testes la fonction NettoyerLaPomme en lui passant différents arguments:
    • Tu passes une pomme saine;
    • Tu ne passes pas de pomme;
    • Tu passes une pomme pourrie;
    • Tu passes une poire;
    • Tu passes deux pommes;
    • Tu passes de la compote;
    • ...



    Et tu regardes comment cette "petite" fonction spécifique se comporte... Normalement, seul le fait de passer une pomme saine devrait te valoir un test spécifique. L'avantage est que si demain le processus de nettoyage d'une pomme doit être modifié, tu ne modifies que cette fonction puis tu refais ta batterie de tests pour être certain que les modifs dans cette fonction n'ont pas dégrader le processus général. Ta modification est donc circonscrite aux seules lignes de code concernées et suite aux tests, ton appli générale reste stable. C'est, en d'autres mots et de façon imagée, ce que te disait el_slapper.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié l'intervention => Merci pour le
    ---------------

  9. #49
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 10 339
    Points : 25 398
    Points
    25 398
    Billets dans le blog
    4

    Par défaut

    Citation Envoyé par Oudouner Voir le message
    Pour appeler un sub, il suffit d'utilise un Call [...]
    Les Call ne sont pas nécessaires
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié l'intervention => Merci pour le
    ---------------

  10. #50
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2017
    Messages : 31
    Points : 43
    Points
    43

    Par défaut

    Citation Envoyé par Pierre Fauconnier Voir le message
    Les Call ne sont pas nécessaires
    Oh, je n'avais jamais remarqué que l'on pouvait faire sans, merci de l'information .

  11. #51
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    8 233
    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 : 8 233
    Points : 16 260
    Points
    16 260

    Par défaut

    Citation Envoyé par Oudouner Voir le message
    Pour appeler un sub, il suffit d'utilise un Call
    Quand j'ai besoin d'un Call, c'est uniquement de  CallByName  !  

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    . . . . . Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

Discussions similaires

  1. afficher un graphique dans word à partir de mon code vba
    Par guysocode dans le forum VBA Word
    Réponses: 2
    Dernier message: 07/11/2005, 14h15
  2. Réponses: 2
    Dernier message: 27/10/2005, 15h51
  3. Réponses: 4
    Dernier message: 13/10/2005, 14h44
  4. Réponses: 3
    Dernier message: 06/09/2005, 10h27
  5. Comment creer une procédure stockée à partir d'un code VBA?
    Par Alcor020980 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 19h55

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