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 :

TreeView et cases à cocher


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Par défaut TreeView et cases à cocher
    Salut à tous,
    je suis complètement débutant en matière de VBA et j'ai un problème !
    J'ai réussi à créer une TreeView mais je veux associer à chaque branche de cette TreeView des cases à cocher.
    Pouvez-vous m'expliquer comment faire ?
    Le must serait d'avoire un système de cochage avec cases blanches si toutes les cases "filles" sont cochées et avec cases grisées sinon, comme on le voit dans certaines install de logiciels notament. Vous me suivez ?
    Merci pour votre aide !

  2. #2
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    voici un code qui répercute le cochage aux enfants d'un membre du treeview

    dans cet exemple, TreeMain est le nom du contrôle Treeview
    la clé "top" est celle du haut de mon treeview ... à toi d'adapter ...
    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
    Private Sub treeMain_NodeCheck(ByVal Node As Object)
     
    Dim nd As Node
    On Error Resume Next
     
    For Each nd In Me.treeMain.Nodes
        If nd.Key <> "top" Then
            If nd.Parent = Node Then
                nd.Checked = Node.Checked
                ' allez hop je me la joue récursif
                treeMain_NodeCheck nd
            End If
        End If
    Next nd
    Set nd = Nothing
     
    End Sub
    Sinon pour ajouter des cases à cocher dans le treeview il faut aller dans les propriétés et cocher (et oui !) la case Checkboxes.

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Par défaut
    Merci beaucoup !
    J'ai copié ton code mais ca ne fonctionne pas, les cases de dessou ne se cochent pas automatiquement.

    Sinon merci pour l'autre info, j'ai réussi à mettre les cases à cocher pour chaque membre de la treeview avec l'option "Checkboxes".

    Du coup j'ai une autre question : comment fait-on pour récupérer les noms des checkbox et par conséquend pour savoir si elles sont cochées ou non ?

    Merci d'avance !

  4. #4
    Expert confirmé

    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
    Par défaut
    bonjour


    un autre exemple pour cocher tous les noeuds enfants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
        CocheDecoche Node.Child, Node.Children, Node.Checked
    End Sub
    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
    Private Sub CocheDecoche(Noeud As MSComctlLib.Node, _
            NbEnfants As Integer, boolNd As Boolean)
        Dim i As Integer
        Dim xNoeud As Node
     
        If NbEnfants = 0 Then Exit Sub
        Set xNoeud = Noeud
     
        For i = 1 To NbEnfants
            If xNoeud.Children > 0 Then _
                CocheDecoche xNoeud.Child, xNoeud.Children, boolNd
     
            xNoeud.Checked = boolNd
            If i < NbEnfants Then Set xNoeud = xNoeud.Next
        Next
     
    End Sub

    bon week end
    michel

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Par défaut
    Merci ça fonctionne !
    Au sujet de mon autre question ? Comment fait-on pour récupérér les valeur des checkbox et par la suite effectuer des traitements ?
    Merci d'avance.

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Par défaut
    cafeine, la clé est "maClé1" je crois, voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       TreeView1.Nodes.Add , , "maClé1", "Etude" ', "Image1", "Image2"
       TreeView1.Nodes.Add "maClé1", tvwChild, "maClé11", "Recherche concept" ', "Image1", "Image2"
     
       TreeView1.Nodes.Add , , "maClé2", "Calcul" ', "Image1", "Image2"
       TreeView1.Nodes.Add "maClé2", tvwChild, "maClé21", "Calcul prédimensionnement" ', "Image1", "Image2"
       TreeView1.Nodes.Add "maClé2", tvwChild, "maClé22", "Calcul statique linéaire" ', "Image1", "Image2"

  7. #7
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Quelle est la clé pour le noeud tout en haut de ton treeview ?

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

Discussions similaires

  1. Treeview et case à cocher
    Par BENSALAMA dans le forum Delphi
    Réponses: 2
    Dernier message: 09/07/2007, 15h47
  2. TreeView et case à cocher.
    Par PadawanDuDelphi dans le forum Delphi
    Réponses: 6
    Dernier message: 27/02/2007, 16h20
  3. TreeView avec case à cocher
    Par da_latifa dans le forum Delphi
    Réponses: 9
    Dernier message: 07/10/2006, 01h01
  4. Treeview avec case à cocher
    Par valoji dans le forum Composants VCL
    Réponses: 4
    Dernier message: 28/01/2006, 21h35

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