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 :

Faire une boucle sur le nom de la procédure


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Par défaut Faire une boucle sur le nom de la procédure
    Bonjour tout le monde,

    je sollicite votre aide car je ne sais pas faire une boucle sur le nom de ma procédure.

    Plus précisément, je souhaite faire varier i de 1 à 15 (for i=1 to 15) dans l'exemple ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CheckBox_i_Click()
        If Me.CheckBox_i.Value = True Then
            ...
        Else:
           ...
        End If
    End Sub
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Ton exemple n'est pas très explicite sur ce que tu veux faire!
    Il serait mieux d'expliquer ce que tu veux faire plutôt que de présenter un exemple qui n'a aucun sans!

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Par défaut
    Bsr Rdurupt,

    merci pour ta célérité. Je me réexplique plus en détail :

    j'ai créé un userform très simple.
    j'ai 15 checkbox nommés checkbox1, checkbox2, ..., checkbox15.
    Lorsque le checkbox1 n'est pas coché (valeur=false), le textbox1 qui lui est associé n'est pas activé (Me.textbox1.enabled=false).
    Le fait de cliquer sur mon checkbox1 va avoir comme effet :
    - activation du textbox1 (Me.textbox1.enabled=true)
    - autorisation de saisie d'une valeur dans mon textbox1
    Je voudrais écrire 15 fois cette procédure en utilisant une boucle au lieu de prendre checkbox1, checkbox2 ... et ainsi de suite.

    Pour mon checkbox1, j'aurai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private sub checkbox1_click()
    if Me.CheckBox1.Value = True Then
    Me.textbox1.enabled=true
    exit sub
    Else:
    Me.textbox1.enabled=false
    End If
    End Sub
    Encore merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    pour information tu test un boolean pour affecter la même valeur à un autre boolean! quelle drôle d’idée!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if Me.CheckBox1.Value = True Then
    Me.textbox1.enabled=true
    le mieux est d'utiliser un module de classe
    Code Classe1 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public WithEvents CB As MSForms.CheckBox
    Public WithEvents TX As MSForms.TextBox
    Private Sub CB_click()
    TX.Enabled = CB.Value
    End Sub
    Code Dans le UserForm : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Tb(15) As New Classe1
    Private Sub UserForm_Initialize()
    For i = 1 To 15
        Set Tb(i).CB = Me.Controls("CheckBox" & i)
        Set Tb(i).TX = Me.Controls("TextBox" & i)
    Next
    End Sub

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Par défaut
    Merci beaucoup Rdurupt.
    Je ne connaissais pas ces modules de classe.
    Je vais tester ce que tu as indiqué et reviendrai ici pour mettre mes commentaires.

  6. #6
    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 heu
    bonsoir
    naivo33:
    si il n'y avais pas de module classe tu pourrais e contenter de faire ceci: 15 fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private sub checkbox1_click()
     Me.textbox1.enabled=Me.CheckBox1.Value
     End Sub
    durupt
    je n'ai pas tester mais je suis pas sur que le résultat souhaité soit atteint
    en effet

    ici TX represente le groupe de textbox et le bon textbox est identifié l'ors de l'évènement du tx mais pas dans l'évènement d'un autre contrôles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub CB_click()
    TX.enabled = CB.Value
    End Sub
    exemple si je fait ceci: le msgbox m'affichera le captions du check box que je viens de cliquer ; ca c'est ok !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub CB_click()
    msgbox CB.caption
    End Sub
    maintenant si je fait ceci: et que j'ai cliquer sur le check box 1 en aucun cas le message m'affichera le texte du textbox1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub CB_click()
    msgbox TX.Value
    End Sub
    je peut me tromper mais pour moi c'est logique
    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

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

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  2. [phpBB][2] Faire une boucle sur plusieurs colonnes
    Par Vinuto dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 28/09/2007, 10h45
  3. realiser une boucle sur un nom de champs dans un Etat
    Par stephanfromtoulouse dans le forum IHM
    Réponses: 2
    Dernier message: 08/09/2006, 23h09
  4. faire une boucle sur un select
    Par reski dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/03/2006, 19h41

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