Selection d'un subitem dans differentes colonnes

Résolu/Fermé
max850 Messages postés 304 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 - Modifié par pijaku le 6/02/2016 à 19:34
max850 Messages postés 304 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 - 8 févr. 2016 à 19:18
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

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
5 févr. 2016 à 14:42
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
max850 Messages postés 304 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 3
5 févr. 2016 à 17:13
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
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
5 févr. 2016 à 17:19
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
max850 Messages postés 304 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 3
Modifié par pijaku le 6/02/2016 à 19:34
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
6 févr. 2016 à 16:06
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
max850 Messages postés 304 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 4 janvier 2020 3
Modifié par pijaku le 9/02/2016 à 10:47
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