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 :

Réduire le code et le rendre plus beau


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2012
    Messages : 121
    Par défaut Réduire le code et le rendre plus beau
    Bonjour

    J'ai écris du code qui fonctionne a merveille, mais je trouve qu'il nécessite trop de lignes et qu'il n'est pas suffisamment esthétique.
    Je m'adresse donc à la communauté pour résoudre mon problème.
    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
    'Question 1
    Private Sub CheckBox1_Click()
     
        CaseACocher1
     
    End Sub
     
    Private Sub CheckBox2_Click()
     
        CaseACocher1
     
    End Sub
     
    Private Sub CheckBox3_Click()
     
        CaseACocher1
     
    End Sub
     
    Private Sub CheckBox4_Click()
     
        CaseACocher1
     
    End Sub
     
    Private Sub CheckBox5_Click()
     
        CaseACocher1
     
    End Sub
     
    Private Sub CheckBox6_Click()
     
        CaseACocher1
     
    End Sub
     Private Sub CheckBox7_Click()
     
        CaseACocher1
     
    End Sub
     
    Private Sub CheckBox8_Click()
     
        CaseACocher1
     
    End Sub
     
    Private Sub CheckBox9_Click()
     
        CaseACocher1
     
    End Sub
     
    Sub CaseACocher1()
     
        A = 1
        B = 2
        C = 3
        D = 4
        E = 5
        F = 6
        G = 7
        H = 8
        I = 9
        M = 8
        Call Test
     
    End Sub
    En gros, losque l'utilisateur clique sur les cases 1 à 9, je veux que mon sous programme "CaseACocher1" Démarre

    Comment faire (s'il y a une solution) pour réduire ces nombreuses répétitions???

    Merci

  2. #2
    Expert éminent 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
    Par défaut
    Utilise les modules de classes

    Exemple, les checkbox sont sur un userform

    1. Crée un module de classe (par défaut nommé Classe1) et y insère ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
     
    Public WithEvents CB As msforms.CheckBox
     
    'Ici le code générique pour tous les checkbox
    Private Sub CB_Click()
     
    CaseACocher1
    End Sub
    2. Dans le module de ton userform
    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
    Option Explicit
     
    Dim Coll As Collection
     
    Private Sub UserForm_Initialize()
    Dim Ctrl As Control
    Dim Klas As Classe1
     
    Set Coll = New Collection
    For Each Ctrl In Me.Controls
        If TypeOf Ctrl Is msforms.CheckBox Then
            'ici instantiation de checkbox
            Set Klas = New Classe1
            Set Klas.CB = Ctrl
            Coll.Add Klas
            Set Klas = Nothing
        End If
    Next Ctrl
    End Sub
    3. Et enfin, dans un module standard, ta procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub CaseACocher1()
     
    'ici ton code en entier
    End Sub

    PS. si tes checkbox sont sur une feuille, la logique est la même sauf qu'il faut utiliser un évènement lié à la feuille ou classeur pour instancier tes checkbox (au lieu de l'initialize de l'userform)

Discussions similaires

  1. [Python 2.X] Python: Problêmes pour rendre un programme plus beau
    Par MisterPython dans le forum Général Python
    Réponses: 0
    Dernier message: 10/12/2014, 11h43
  2. Faut-il commenter son code source pour le rendre plus lisible et maintenable ?
    Par mayayu dans le forum Débats sur le développement - Le Best Of
    Réponses: 149
    Dernier message: 09/11/2009, 02h30
  3. Comment rendre plus propre ce code super simple svp ?
    Par frakosun dans le forum jQuery
    Réponses: 4
    Dernier message: 28/10/2009, 09h31
  4. Code qui ne marche plus sur IE7 Beta
    Par Death83 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/03/2006, 00h15
  5. Un peut plus beau !
    Par Virgile59 dans le forum Contribuez
    Réponses: 3
    Dernier message: 15/09/2005, 13h11

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