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 :

Aide sur listbox [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut Aide sur listbox
    Bonjour,

    J'ai commencé à faire un nouvel userform

    Ce que je souhaite faire :
    Lorsque je clique sur le bouton "plan classe 6" une listbox parait qui correspond à B4 : D300
    Et j'aimerais que lorsque je clic sur une case à cocher il y a un "X" qui se met dans la colonne D en fonction du code choisi.

    A l'heure actuelle mon code fonctionne, mais lorsque je ré-ouvre l'userform les croix s'efface
    Comment faire pour conserve les "X" dans la colonne D.
    Merci de votre aide.

    Ci-joint le code

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    Private Sub UserForm_Initialize()
    ListBox1.Clear
    End Sub
     
    Public Sub CommandButton_classe_6_Click()
    ListBox1.ColumnCount = 3
    ListBox1.ColumnWidths = "30;250;50"
    ListBox1.List = Sheets("Plan_compta").Range("B4:D300").Value
    End Sub
     
     
    Private Sub ListBox1_Change()
    Dim c
    Dim val As String
    Dim i As Long
     
    'boucle mise a X
    For i = ListBox1.ListCount - 1 To 0 Step -1
      If ListBox1.Selected(i) Then
      val = ListBox1.List(i)
      For Each c In Sheets("Plan_compta").Range("B4:B300")
       If c <> "" Then
       If c = val Then
       c.Offset(0, 2) = "X"
       End If
      End If
      Next
     
        End If
    Next
     
    'boucle suppression X
    For i = ListBox1.ListCount - 1 To 0 Step -1
      If ListBox1.Selected(i) Then
      Else
      val = ListBox1.List(i)
      For Each c In Sheets("Plan_compta").Range("B4:B300")
       If c <> "" Then
       If c = val Then
       c.Offset(0, 2) = ""
       End If
      End If
      Next
     
        End If
    Next
    End Sub

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    à première vue, en enlevant cette partie
    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
    'boucle suppression X
    For i = ListBox1.ListCount - 1 To 0 Step -1
      If ListBox1.Selected(i) Then
      Else
      val = ListBox1.List(i)
      For Each c In Sheets("Plan_compta").Range("B4:B300")
       If c <> "" Then
       If c = val Then
       c.Offset(0, 2) = ""
       End If
      End If
      Next
     
        End If
    Next
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Bonjour,
    Merci pour la réponse mais si je supprime cette partie cela ne fonctionne pas correctement.
    Parce que cette partie sert à enlever le "X" lorsque je décoche la case à cocher dans la listbox

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    du vite 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
    Private Sub ListBox1_Change()
    Dim c As Range
    Dim val As String
    Dim i As Long
     
    'boucle mise a X
    For i = ListBox1.ListCount - 1 To 0 Step -1
      If ListBox1.Selected(i) Then
        val = ListBox1.List(i)
        For Each c In Sheets("Plan_compta").Range("B4:B300")
          If c <> "" And c = val Then
            c.Offset(0, 2) = "X"
          Else
            c.Offset(0, 2) = ""
          End If
      End If
    Next
     
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    cela ne fonctionne pas non plus

    code incorrect car j'ai le message If sans EndIf?

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je t'ai ecris que c'était du vite fait, il y a surement une ligne mal placée, tu devrais la voir, mais j'y regarde
    essayes, il manquait un next
    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
    Private Sub ListBox1_Change()
    Dim c As Range
    Dim val As String
    Dim i As Long
     
    'boucle mise a X
    For i = ListBox1.ListCount - 1 To 0 Step -1
      If ListBox1.Selected(i) Then
        val = ListBox1.List(i)
        For Each c In Sheets("Plan_compta").Range("B4:B300")
          If c <> "" And c = val Then
            c.Offset(0, 2) = "X"
          Else
            c.Offset(0, 2) = ""
          End If
        Next c
      End If
    Next i
     
     
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Mon code est le même que le tien à part ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ....
    Else
            c.Offset(0, 2) = ""
          End If
    ....
    regardes bien le tien d'origine, avec l'évènement "Change"
    1ere partie
    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
    Private Sub ListBox1_Change()
    Dim c
    Dim val As String
    Dim i As Long
     
    'boucle mise a X
    For i = ListBox1.ListCount - 1 To 0 Step -1
      If ListBox1.Selected(i) Then
      val = ListBox1.List(i)
      For Each c In Sheets("Plan_compta").Range("B4:B300")
       If c <> "" Then
       If c = val Then
       c.Offset(0, 2) = "X"
       End If
      End If
      Next
     
        End If
    Next
    2eme partie, aussitôt tu annules ce que tu viens de faire
    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
    ...
     
    'boucle suppression X
    For i = ListBox1.ListCount - 1 To 0 Step -1
      If ListBox1.Selected(i) Then
    'que manque t'il ici
      Else
      val = ListBox1.List(i)
      For Each c In Sheets("Plan_compta").Range("B4:B300")
       If c <> "" Then
       If c = val Then
       c.Offset(0, 2) = ""
       End If
      End If
      Next
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    oui c'est bien cela mais cette partie marche sans probleme.

    Le problème ce n'est pas de mettre les croix quand on coche ou decoche, c'est de conserver les croix ou elles sont mises quand on ferme et re-ouvre userform.

    ci-joint une explication
    Fichiers attachés Fichiers attachés

  9. #9
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    à moins que je ne comprenne rien mais ce code devrait suffire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub ListBox1_Change()
    If ListBox1.Selected(ListBox1.ListIndex) Then
      Range("D" & ListBox1.ListIndex + 4) = "X"
    Else
      Range("D" & ListBox1.ListIndex + 4) = ""
    End If
     
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Merci super

  11. #11
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Citation Envoyé par tiralarc03 Voir le message
    Merci super
    alors lis ma signature.......
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Bonjour,

    ton code ne fonctionne pas mais mon code de départ fonctionne bien, mais le problème ce n'est pas de mettre les croix quand on coche, c'est de conserve les croix ou elles sont mises quand on ferme userform.

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

Discussions similaires

  1. [XL-2010] Aide sur Drag and drop entre x ListBox
    Par jacky72 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/05/2014, 23h32
  2. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19
  3. Réponses: 2
    Dernier message: 27/02/2003, 01h33
  4. [Kylix] Aide sur BitBlt
    Par mic006 dans le forum EDI
    Réponses: 1
    Dernier message: 10/12/2002, 22h54
  5. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

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