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 :

[VBA Excel] Une même macro pour plusieurs CheckBox


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [VBA Excel] Une même macro pour plusieurs CheckBox
    Bonjour,

    Je suis débutante en vba.
    Je voudrais créer un nombre indéfini de CheckBox, auxquelles je voudrais affecter la même macro. Après avoir cherché dans l'aide et sur internet, je pense que je pourrais m'en sortir avec une collection de CheckBox.
    J'arrive à faire entrer mes CheckBox dans la collection mais je n'arrive pas ensuite à ce que ma macro s'effectue quand je clique sur une case à cochée.

    J'ai essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       Sub NomDeMaCollection_Click()
       MaMacro
       End sub
    Est-ce que c'est possible? Et si oui, comment dois-je faire?
    Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Jète un oeil à cette adresse

    http://vb.developpez.com/faq/?page=Form#ctl_dynamique

    Consiste à indexer les contrôles puis à les gérer selon leur index

    Tu dis

  3. #3
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Il n'y a pas le tag...
    Mais je vois le mot macro...

    On peut indexer sous VBA ?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Sous VBA97, non. Sous les versions ultérieures, je crois... mais effectivement, je n'en suis pas sûr
    Choupett' va nous dire ça...

  5. #5
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Non, justement, j'allais le dire à ouskel'! On peut pas en VBA puisqu'il n'y a pas de propriété Index...

    Choupett', que veux-tu faire au juste? Les boutons d'options ne seraient-ils pas plus adéquats?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai VBA97, et apparemment comme le dit ouskel'n'or, on ne peut pas. En tout cas je n'y arrive pas.

    J'ai pensé aux boutons d'option mais ça ne me convient pas car il faut que je puisse en cocher plusieurs à la fois.

    J'essaie de faire un programme qui me permettrait de calculer un budget. Et j'ai besoin de ces cases à cocher pour pouvoir pointer ce qui est sur le relevé de banque.

    Donc pour calculer ce solde pointé, j'ai fait :
    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
    Private Sub CheckBox2_Click()
    'Pour trouver sur quelle ligne ce situe ma checkBox
    y = CheckBox2.Top
    N°Ligne = Int(y / 12.75) + 1
     
        If CheckBox2.Value = True Then
                Cells(N°Ligne, 9).FormulaR1C1 = Cells(N°Ligne, 7) 
            'avec dans la colonne G le montant des dépenses et des recettes 
            Else
                Cells(N°Ligne, 9).FormulaR1C1 = "0" 
                'dans la colonne I le pointage
         End If
     
         SoldePointé
     
    End Sub
    
    
    Sub SoldePointé()
    If Cells(3, 10).Value = "" Then     'avec dans la colonne J le solde pointé
                Pointage = Cells(3, 9).Value
                Cells(3, 10).Select
                Selection.FormulaR1C1 = Pointage
                
            Else: Cells(3, 9).End(xlDown).Select
                  Pointage = Selection.Value
                  Selection.Offset(0, 1).Select
                  Selection.FormulaR1C1 = Pointage
                  Selection.Offset(-1, -1).Select
                  
                  Do
                    Pointage = Selection.Offset(1, 1).Value + Selection.Value
                    Selection.Offset(0, 1).Select
                    Selection.FormulaR1C1 = Pointage
                    Selection.Offset(-1, -1).Select
                  Loop Until Selection.Value = ""
                  
        End If
    End Sub
    Le problème, c'est qu'à chaque fois que je rentre une nouvelle dépense, j'ai besoin de créer une nouvelle Checkbox à laquelle je dois affecter ma macro CheckBox_Click. D'où mon idée de faire une collection et d'affecter cette macro à la collection mais je ne sais pas si c'est possible et je n'y arrive pas.

    Merci de votre aide


    Pense aux balises Code pour encadrer ton code. Sélection du code, 1 clic sur le bouton # et picétou
    Ajoutées par ouskel'n'or

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu mets
    If CheckBox2.Value = True Then
    Cells(N°Ligne, 9).FormulaR1C1 = Cells(N°Ligne, 7)
    'avec dans la colonne G le montant des dépenses et des recettes
    Else
    C'est la colonne 6 ou la colonne 9 (G ou I) ?

    Je sais que je ne réponds pas à ta question mais j'ai vu ça, alors...

    A+

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Dans la colonne G (7), le montant des dépenses ou des recettes
    Dans la colonne I (9), le pointage
    Dans la colonne J (10), le solde pointé

    Et je veux mettre dans la colonne I, la valeur de la colonne G si la checkBox est cochée. Et à partir de cette colonne I qui est masquée, je calcule le solde pointé dans la colonne J.

    Je ne sais pas si j'ai répondu à ta question mais j'avoue que je n'ai pas très bien compris où était le problème...

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Cells(N°Ligne, 9).FormulaR1C1 = Cells(N°Ligne, 7)
    'avec dans la colonne G le montant des dépenses et des recettes
    C'était juste l'incohérence entre ton code et la remarque

    A+

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je voulais savoir s'il était possible que je me serve du code de Silkyroad qu'il a posté là : http://www.developpez.net/forums/sho...d.php?t=162082

    J'ai essayé mais je ne suis pas dans un userform mais dans un module donc j'ai un problème avec le Me dans Set CmndB = Me.Controls.Add
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ("forms.CommandButton.1")
    C'est peut-être une question bête mais je ne comprends pas encore tout aux classes

    Merci d'avance

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    pour traiter un probléme similaire.. je ne me suis pas pris le chou avec un check box... mais j'ai réservé une colonne pour cocher .. colonne dans laquelle je rajoute un X lorsque... une procédure événementielle à la feuille concernée du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     If Target.Count = 1 Then
       If Intersect(Target, Range("G2:G65535")).Count = 1 Then
          If Target = "" Then
             Target = "X"
             Cancel = True
           End If
       End If
    End If
    End Sub

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je pense que je vais faire comme tu m'as dit bbil.
    Merci pour votre aide

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

Discussions similaires

  1. [XL-2010] Répéter même action pour plusieurs checkbox
    Par abdello dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/10/2013, 09h56
  2. une seule macro pour plusieurs feuilles d'un même classeur
    Par pouldom dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/12/2010, 11h38
  3. Une même fonction pour plusieurs types de variables
    Par darkwall_37 dans le forum Débuter
    Réponses: 1
    Dernier message: 21/04/2010, 18h06
  4. [VBA-excel]Probleme de macro pour creer un graphique.
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2006, 15h42
  5. [VBA] Excell : demande d'aide pour une macro
    Par Fealendril dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/01/2006, 16h28

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