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 :

Grouper les contrôles sur une feuille de calcul


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Points : 69
    Points
    69
    Par défaut Grouper les contrôles sur une feuille de calcul
    bonjour,
    J'ai un problème avec cette source. Tout marche très bien si mes contrôles sont sur un formulaire. Le problème est le suivant : je cherche à grouper des contrôles posés sur une feuille xls.

    J'ai essayé d'adapter le code de la manière suivante :
    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
     
    //dans la classe
    Public WithEvents Objtxt As OLEObject
     
    Private Sub Objtxt_Change()
        MsgBox Objtxt.Name
    End Sub
     
    Private Sub Objtxt_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
        MsgBox Objtxt.Name
    End Sub
     
     
     
     
    //dans la feuille
    Private Sub Worksheet_Activate()
        Dim Cl1 As Classe1
        Dim txtbox As OLEObject
        Dim i As Integer, nb As Byte, ctr As OLEObject
     
            Set Col1 = New Collection
            For Each ctr In Me.OLEObjects
     
                If InStr(ctr.Name, "OptionButton") = 1 Then _
                    nb = nb + 1
            Next
            For i = 1 To nb
                Set txtbox = Me.OLEObjects("OptionButton" & i)
     
                With txtbox
                    Set Cl1 = New Classe1
                    Set Cl1.Objtxt = txtbox
                    Col1.Add Cl1
                End With
            Next
    End Sub
    Mais vba me dit que "Lobject ou la classe ne gère pas le jeux d'évènements".
    Ce qui est assez embêtant...

    avez vous des idées?

    [Edit]
    Merci du mouvement dans le bon forum
    [/Edit]

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour


    Cet exemple gère les CheckBox placées dans la feuille de calcul "Feuil1".
    Une action est déclenchée dès que l'utilisateur clique sur une des cases à cocher.


    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
    '--------------------------------------
    'à placer dans le module objet ThisWorbook pour que la classe
    'soit initialisée lors de l'ouverture du classeur.
     
    Option Explicit
     
    Private Sub Workbook_Open()
    Dim Obj As OLEObject
    Dim Cl As Classe1
     
    Set Collect = New Collection
     
    'boucle sur les objets de la Feuil1
    For Each Obj In Feuil1.OLEObjects
        'verifie s'il s'agit d'un Checkbox
        If TypeOf Obj.Object Is MSForms.CheckBox Then
     
            Set Cl = New Classe1
            Set Cl.CheckBoxGroup = Obj.Object
            Collect.Add Cl
        End If
    Next Obj
     
    End Sub
    '--------------------------------------


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    '--------------------------------------
    'dans un module standard
    Option Explicit
     
    Public Collect As Collection
    '--------------------------------------

    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
    '--------------------------------------
    'Dans un module de classe nommé "Classe1"
    '
    Option Explicit
     
    Public WithEvents CheckBoxGroup As MSForms.CheckBox
     
     
    'Evenement Click sur les CheckBox de la feuille de calcul.
    Private Sub CheckBoxGroup_Click()
     
        'Renvoie le nom et la valeur de la CheckBox cliquée
        MsgBox CheckBoxGroup.Name & ": " & CheckBoxGroup.Value
     
        'Exemple qui renvoie dans la colonne A, la valeur de CheckBox
        Cells(CheckBoxGroup.TopLeftCell.Row, 1) = CheckBoxGroup.Value
    End Sub
     
    '--------------------------------------



    bon week end
    michel

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Points : 69
    Points
    69
    Par défaut
    tout est bon, merci beaucoup.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/04/2011, 15h10
  2. [XL-2010] Boucle sur des contrôles d'une feuille de calcul
    Par Korleone dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/01/2011, 15h16
  3. boucler sur tous les optionbutton d une feuille de calcul
    Par patbou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/03/2008, 19h48
  4. Comment générer du code sur une feuille de calcul?
    Par mardona dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/05/2007, 16h20
  5. Contrôles (CheckBox) sur une feuille de calcul
    Par yogyx dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/12/2006, 09h54

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