Selection Listbox

bonjour

si quel qu 'un peut m'aider a résoudre mon problème.

voila j'une liste box multiselect qui contient 8 colonne est alimenter par un bouton commande

j'aimerai si la ligne sélectionner contient une valeur "C_D" on vas exécuter une macro si contient "C_V" on n' exécute pas la macro

la valeur ce trouve dans la colonne 8 de liste box

voici le code que j'ai mais tjrs il exécute la macro

For i = N_select - 1 To 0 Step -1
    If L_CONSO_2.List(i, 8) = "C_D" Then
Call Model_2
End If
Next i

j’espère que jetai clair dans mon explication merci d'avance

Slt,

essaie comme ca:

For i = N_select - 1 To 0 Step -1
    If L_CONSO_2.List(i, 8).value = "C_D" Then
Call Model_2
End If
Next i

Bonjour,

Il te faut tester si la ligne est sélectionnée avec de tester si la colonne contient la valeur. Attention, la base des index est 0 et non 1 pour les lignes et colonnes donc L_CONSO_2.List(0, 0) retourne la valeur la plus en haute et à gauche (comme par exemple en A1) et par là, L_CONSO_2.List(L_CONSO_2.ListCount - 1, L_CONSO_2.ColumnCount - 1) retourne la valeur la plus en bas et à droite.

Voici un code qui fonctionne et qu'il ne te reste plus qu'à adapter à tes besoins :

Private Sub CommandButton1_Click()

    Dim I As Integer

    'attention, la base des colonnes comme des lignes est 0 et non 1 donc, décalage (7 pour huitième colonne)
    For I = L_CONSO_2.ListCount - 1 To 0 Step -1

        If L_CONSO_2.Selected(I) Then

            Select Case L_CONSO_2.List(I, 7)

                Case "C_D": Model_1 I
                Case "C_V": Model_2 I

            End Select

        End If

    Next I

End Sub

Sub Model_1(J As Integer)

    'affiche la valeur de la colonne 2
    MsgBox "La valeur " & L_CONSO_2.List(J, 1) & " a été sélectionnée !"

End Sub

Sub Model_2(J As Integer)

    'affiche la valeur de la colonne 4
    MsgBox "La valeur " & L_CONSO_2.List(J, 3) & " a été sélectionnée !"

End Sub

Salut

Merci m3ellem1 , Theze

J'ai essayer vos Code mais j'ai pas réussi a les faire fonction tjr la macro s’exécute

bref je crois que j'ai mal explique mon problème voici une partie de mon projet ou je bloque

vos trouveriez ci joint mon fichier

ce que je veux si quand je sélectionne une ligne ou plusieurs et l'une de ligne sectionner contient "C_D" ben on exécute une macro si les ligne sectionne ne contient pas "C_D" ben on n’exécute pas la macro

Merci

13forum.xlsm (90.49 Ko)

Bonjour toutes et tous

ci-joint,

macro ne s’exécute plus au démarrage de ton workbook

crdlt,

André

Merci r Andre13 pour to implication, mais le blem si pas excution de usf que je veux eliminer

si tu peux lire le code vba de l'application tu trouveras une macro appelé Sub Model_2

si cette dernier que veux l’exécuter en cas ou je sélectionne dans la listbox des item qui contient la valeur "C_D"

si des items sélectionne contient C_D ET C_V BEN la macro s"exécute automatiquement

si des les ligne sélectionne ne contient pas la valeur C_D BEN LA MACRO NE s’exécute pas tt simplement

merci a vous

Bonjour,

je t'ai déjà donné la solution qu'il te faut juste adapter !

Attaches le code ci-dessous au bouton souhaité :

Dim I As Integer

'attention, la base des colonnes comme des lignes est 0 et non 1 donc, décalage (7 pour huitième colonne)
For I = L_CONSO_2.ListCount - 1 To 0 Step -1

    If L_CONSO_2.Selected(I) Then

        Select Case L_CONSO_2.List(I, 7)

            Case "C_D", "C_V": Model_2

        End Select

    End If

Next I

Tu devrais indenter ton code de cette façon par exemple car c'est un peu "fouilli" :

Sub Model_2()

    With C_ARCH

        .Range("A21:H21").Merge
        .Range("D22:E22").Merge
        .Range("D23:E23").Merge
        .Range("D24:E24").Merge
        .Range("D25:E25").Merge

        With Range("A21:H21").Interior

            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent6
            .TintAndShade = 0.599993896298105
            .PatternTintAndShade = 0

        End With

        With Range("A21:H22")

            .Font.Size = 14
            .Font.Bold = True
            .Borders(xlEdgeTop).LineStyle = xlDouble
            .Borders(xlEdgeBottom).LineStyle = xlDouble
            .Borders(xlInsideVertical).LineStyle = xlDouble
            .Borders(xlEdgeTop).Weight = xlThick

        End With

        .Range("A21") = "Consommation    Divers"
        .Range("A22") = "N°"
        .Range("A23") = "01"
        .Range("A24") = "02"
        .Range("A25") = "03"
        .Range("B22") = "Demandeur"
        .Range("C22") = "Structure"
        .Range("D22") = "Document"
        .Range("G22") = "Nbr Bon"
        .Range("F22") = "/"
        .Range("H22") = "Obs"

    End With

End Sub

Salut Theze

dommage ca pas marche encore

je vais encore essayer demain

bonne soiré

Bonjour,

Passe la valeur de colonne de la ListBox de 7 à 8 dans le bloc "Select Case" :

Select Case L_CONSO_2.List(I, 8) '8 au lieu de 7

Salut theze

ca marche mtn le problème était plus haut dans le code

voici le code qui était au début et si pour que ca pas marche .

For  I= N_select - 1 To 0 Step -1
    If L_CONSO_2.Selected( I) = True Then
                Me.L_CONSO_2.RemoveItem  I
                       End If
                          Next  I

              For I = L_CONSO_2.ListCount - 1 To 0 Step -1
    If L_CONSO_2.Selected(I) Then   
        Select Case L_CONSO_2.List(I, 8)      
            Case "C_D": Model_2            
        End Select       
    End If
Next I            

je l'ai change comme ca et hop impeccable tout semble en marche

   
    If L_CONSO_2.Selected(I) Then
        Select Case L_CONSO_2.List(I, 8)
            Case "C_D": Model_2   
        End Select
    End If
Next I            
                          For  I= N_select - 1 To 0 Step -1
    If L_CONSO_2.Selected( I) = True Then
                Me.L_CONSO_2.RemoveItem  I
                       End If
                          Next  I

Merci theze pour votre aide........

Rechercher des sujets similaires à "selection listbox"