Selection d'un subitem dans differentes colonnes

Résolu
max850 Messages postés 312 Statut Membre -  
max850 Messages postés 312 Statut Membre -
Bonjour,

avec ce code je peux contrôler les subitems de la colonne 1 seulement
mais je souhaiterais contrôler aussi les subitems des colonnes 3 et 5
exemple
60000 xxxx 70000 yyyyy 80000 zzzzzz
comment puis je procéder pour contrôler 80000 qui s trouve dans la colonne 3 avec une variable dans .listsubitem()

Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim i As Integer, LaValeur As String
  Me.TextBox11 = ""

     i = Me.ListView1.SelectedItem.Index
     LaValeur = ListView1.ListItems(i).ListSubItems(1).Text
     
     If Left(LaValeur, 1) <> "6" Then
        ListView1.ListItems(i).Selected = False
        Set ListView1.SelectedItem = Nothing
        Me.TextBox11 = ""
        MsgBox "erreur"
     Else
        Me.TextBox11 = LaValeur
     End If

       
End Sub

merci pour votre aide

6 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Comme ceci:

    Private Sub ListView1_Click()
    Dim i As Integer
    With Me.ListView1
    i = .SelectedItem.Index
    MsgBox .ListItems(i).ListSubItems(3).Text 'remplacer MsgBox par variable
    MsgBox .ListItems(i).ListSubItems(5).Text
    End With
    End Sub
    

    0
  2. max850 Messages postés 312 Statut Membre 3
     
    Bonsoir cs_lepivert

    je me suis sans doute mal exprimé.
    je voudrais que quand je clique par erreur sur un item de la ligne sélectionnée
    je puisse recliquer sur un autre subitem de cette colonne ou d'une autre colonne
    je voudrais que le numéro de colonne soit une variable et non entrée en dur
    comme dans mon code ici colonne 1
    LaValeur = ListView1.ListItems(i).ListSubItems(1).Text

    est ce possible

    merci cs_lepivert

    ps je tarde à répondre car je ne reçois très très en retard info sur mon mail
    m'indiquant qu'une réponse a été apportée à mon fil
    0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Voici un exemple avec 10 colonnes et 10 TextBox, a adapter:

    Private Sub ListView1_Click()
    Dim l, c
    With Me.ListView1
    l = .SelectedItem.Index
    TextBox1 = .ListItems(l).Text
    For c = 1 To 10
    Me("TextBox" & c + 1) = .ListItems(l).ListSubItems(c).Text
    Next c
    End With
    End Sub

    0
  4. max850 Messages postés 312 Statut Membre 3
     
    Bonjour Le pivert

    Private Sub ListView1_Click()
    Dim i, c
    
    With Me.ListView1
    
         i = .SelectedItem.Index
    
         For c = 1 To 5 Step 2
    
           lavaleur = .ListItems(i).ListSubItems(c).Text
           TextBox11 = lavaleur
         Next c
    
    End With
    End Sub


    je boucle bien sur mes trois colonnes mais je ne sais pas comment
    stopper ma boucle lorsque c'est le listsubitems de la colonne 2 ou 3 qui m'intéresse et que je veux conserver dans ma texbox11,, malgré l'exemple que tu m'a donné,

    je suis vraiment nul

    merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Une autre approche, tu sélectionnes ta ligne et ensuite l'entête de la colonne du SubItem:

    Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
      Dim L As Long, Col As Byte, C As Range
      L = ListView1.SelectedItem.Index + 2: Col = ColumnHeader.Index
    MsgBox Cells(L, Col) 'changer pour une variable
    End Sub

    0
  7. max850 Messages postés 312 Statut Membre 3
     
    Bonsoir le_pivert

    je me suis remis au turbin ce soir et ai trouvé une solution.
    j'ai bien conscience que c'est vraiment du travail d'amateur
    mais cela fonctionne avec le résultat escompté

    Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
    
    Dim i As Integer, mavaleur As String
    Me.TextBox11 = ""
    
    Dim i As Integer, mavaleur As String
    Me.TextBox11 = ""
       
    With Me.ListView1
        i = .SelectedItem.Index
        If CheckBox1.Value = True Then
           mavaleur = .ListItems(i).ListSubItems(1).Text
           TextBox11.Value = mavaleur
           
           If MsgBox("Est ce que ce code est bon?" & Chr(13), vbYesNo + vbQuestion, "Demande de confirmation") = vbNo Then
             ListView1.ListItems(i).Selected = False
             Set ListView1.SelectedItem = Nothing
             Me.TextBox11 = ""
             MsgBox "Vérifier la rubrique" & Chr(13) & "Ou vérifier votre liste de codes" & Chr(13) & "Ou prendre le code le plus approprié", vbOK + vbInformation, "Demande de vérification"
             Else
                MsgBox "Parfait"
           End If
          Exit Sub
       End If
       If CheckBox1.Value = False Then
           mavaleur = .ListItems(i).ListSubItems(3).Text
           TextBox11.Value = mavaleur
           MsgBox mavaleur
          If MsgBox("Est ce que ce code est bon?", vbYesNo + vbQuestion, "Demande de confirmation") = vbNo Then
             ListView1.ListItems(i).Selected = False
             Set ListView1.SelectedItem = Nothing
             Me.TextBox11 = ""
           Else
           MsgBox "Parfait"
           End If
          Exit Sub
       End If
           
      End With
    End Sub
    0