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 :

Sélection et Suppression d'Item de listbox via ToggleButton


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut Sélection et Suppression d'Item de listbox via ToggleButton
    Bonjour à tous,

    Je dispose d'un USF contenant 18 ToggleButtons et 2 Listbox.

    Je souhaiterai qu'en cliquant sur les ToggleButtons, leur Caption soient ajoutés ou supprimés de la ListBox2 selon leur valeur vraie ou fausse.

    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
    Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = True Then
        ListBox2.AddItem ToggleButton1.Caption
    Else
           For j = ListBox2.ListCount - 1 To 0 Step -1
        ListBox2.Select ToggleButton1.Caption
        If ListBox2.Selected(j) = True Then
        'on Supprime l'élément selectionné dans la ListBox.
        ListBox2.RemoveItem (j)
        End If
    Next j
    End If
     
    ToggleButton1.BackColor = IIf(ToggleButton1 = True, vbGreen, vbRed)
     
    End Sub
    Je pars de cette base, suis je dans la bonne voie?

    Merci!

  2. #2
    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 re
    que se passe t il si l'item correspondant a la caption n'existe pas ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For j = ListBox2.ListCount - 1 To 0 Step -1
            If ListBox2.list(j,0)=ToggleButton1.Caption Then ListBox2.RemoveItem (j):exit for
      Next j
    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

  3. #3
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut
    Merci de votre retour si rapide!

    A priori impossible, car à l'initialisation les ToggleButtons et la ListBox sont alimentés (True / False / Listindex) depuis le même tableau...

    Votre code fonctionne parfaitement, merci!

    Une suggestion pour dupliquer à tous les ToggleButtons (de 1 à 18)?

  4. #4
    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 re
    alors si tu a x toglebutton il te faut soit écrire dans le code du module userform les évènements de chaque togle ou faire une classe control qui rassemblera tout les évènements en quelques lignes de code dans un module classe
    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

  5. #5
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut
    Ok, première solution éprouvée car dans mes cordes!

    Je ne gère pas les modules de classes pour le moment... Mais vu la tournure de mes modules, il va bien falloir que je m'y intéresse!

    Merci beaucoup des conseils!

  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 re
    exemple simple de classe

    dans ton userform tu a une listbox et x togglebutton

    dans le activate du userform tu met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cls As New Classe1
    Private Sub UserForm_Activate()
    cls.alltogle Me, ListBox1' adapte le nom de ta listbox 
    End Sub
    ajoute un module classe et met y cela dedans
    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
    Public WithEvents togle As msforms.ToggleButton
    Public WithEvents liste As msforms.listbox
    Dim cl(100) As New Classe1
     
    Function alltogle(uf, listbox)
        For Each ctrl In uf.Controls
            If TypeName(ctrl) = "ToggleButton" Then
             i = i + 1:
             Set cl(i).togle = ctrl:
             set cl(i).liste = listbox
            end if 
      Next
    End Function
    Private Sub Togle_Click()
        If togle = False Then
            For i = liste.ListCount - 1 To 0 Step -1
                If liste.list(i, 0) = togle.Caption Then liste.RemoveItem (i)
            Next
        Else
            liste.AddItem togle.Caption
        End If
        'MsgBox "coucou"
    End Sub
    voila et c'est tout tu a le mémé évènement pour tes togglebuttons dans la classe
    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. Listbox suppression d'item
    Par logue_in dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/04/2016, 21h02
  2. Suppression d'item dans une ListView via des CheckBox (Type boite mail)
    Par Berlo56 dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 27/03/2014, 09h40
  3. [listbox] Suppression d'item
    Par jontleman dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/11/2007, 00h19
  4. Sélection d'un item d'un listbox via une valeur
    Par Filipegomes dans le forum C#
    Réponses: 10
    Dernier message: 31/10/2007, 13h50
  5. Recuper les items de ListBox d'une autre application [API?]
    Par Shamanisator dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h32

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