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 :

Textbox en fonction sélection valeur 2ème colonne listbox multiselect [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut Textbox en fonction sélection valeur 2ème colonne listbox multiselect
    Bonjour tout le monde,

    J'ai une listbox multiselect (LbPersonnel) comprenant 3 colonne. 1ère colonne : des noms, 2ème colonne : des catégories (OUV ou ETA), 3ème colonne : des taux.
    J'ai également 4 textbox (TbHeures, TbCoutF°, TbOUV, TbETA)

    Si, dans mes sélections, en 2ème colonne est écrit "OUV", alors ma TbOUV doit effectuer le calcul suivant et montrer le résultat : TbCoutF° + TbHeures * 21
    Si, dans mes sélections, en 2ème colonne est écrit "ETA", alors ma TbETA doit effectuer le calcul suivant et montrer le résultat : TbCoutF° + TbHeures * 25

    J'ai regardé un peu partout sur internet, je tombe sur beaucoup de sujet des listbox multiselect, mais ça ne m'aide pas vraiment.

    Merci beaucoup pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Mél3790 Voir le message
    Bonjour,

    A tester :

    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
     
    Private Sub LbPersonnel_Change()
     
    Dim CtrI As Long, NbHeuresOUV As Long, NBHeuresETA As Long
     
        TbOUV = ""
        TbETA = ""
        NbHeuresOUV = 0
        NBHeuresETA = 0
     
        If LbPersonnel.ListCount > 0 Then
            For CtrI = 0 To LbPersonnel.ListCount - 1
                If LbPersonnel.Selected(CtrI) = True Then
                  Select Case LbPersonnel.List(CtrI, 1)
                         Case "OUV"
                              NbHeuresOUV = NbHeuresOUV + TbHeures
                         Case "ETA"
                              NBHeuresETA = NBHeuresETA + TbHeures
                  End Select
                End If
            Next CtrI
     
            TbOUV = TbCoutF° + NbHeuresOUV * 21
            TbETA = TbCoutF° + NBHeuresETA * 25
     
         End If
     
    End Sub

  3. #3
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Bonjour,

    Merci pour votre réponse.
    Votre code fonctionne très bien.
    Je l'ai un peu modifier pour que le calcul ne se fasse qu'une seul fois :
    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
    Dim CtrI As Long ', NbHeuresOUV As Long, NBHeuresETA As Long
     
        TbOUV = ""
        TbETA = ""
        NbHeuresOUV = 0
        NBHeuresETA = 0
     
        If LbPersonnel.ListCount > 0 Then
            For CtrI = 0 To LbPersonnel.ListCount - 1
                If LbPersonnel.Selected(CtrI) = True Then
                  Select Case LbPersonnel.List(CtrI, 1)
                         Case "OUV"
                              'NbHeuresOUV = NbHeuresOUV + TbHeures
                              TbOUV = TbCoutF° + TbHeures * 21
                         Case "ETA"
                              'NBHeuresETA = NBHeuresETA + TbHeures
                              TbETA = TbCoutF° + TbHeures * 25
                  End Select
                End If
            Next CtrI
        End If
    Par contre je garde en mémoire la totalité de votre code car il va m'être utile pour une autre partie de mon projet.
    C'est parfait merci beaucoup pour votre aide. Je cherchais vraiment la complication !

    A bientôt.

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

Discussions similaires

  1. Modifier la valeur d'une textbox en fonction du résultat d'une listbox
    Par rafikiderevel dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/05/2015, 16h38
  2. Insérer valeur dans Textbox en fonction des valeurs des Combobox
    Par jgresse1025 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 24/03/2015, 15h09
  3. Sélection valeur sur colonne liste déroulante
    Par rodriguesd@yahoo.fr dans le forum SharePoint
    Réponses: 4
    Dernier message: 09/09/2010, 14h16
  4. ListBox - Valeur de la 2ème colonne d'une liste
    Par Daejung dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/10/2008, 17h52
  5. Quel est la valeur d'une listbox multiselect non selectionnée?
    Par jolzeviking dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/09/2008, 11h29

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