Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Récupérer la valeur sélectionner d'un ListView dans un TextBox

Chri8Ed

XLDnaute Occasionnel
Bonjour à tous

J'ai un ListView qui me permet de transcrire dans une cellule la valeur sélectionnée
Pour une autre utilisation de cet ListView, je souhaiterais récupérer cette valeur dans un TextBox au lieu de la transcrire dans une cellule

J'ai essayé de remplacer
ActiveCell = li par TextBox1.value = li

Et pas mal d'autres choses ....
Mais rien à faire

Je viens donc chercher de l'aide

Merci d'avance

Code:
Private Sub UserForm_Initialize()
  Dim C As Range
      With Lv
        With .ColumnHeaders
            .Clear
            .Add , , "Boite", 120
            .Add , , "Type", 130
            .Add , , "", 50, lvwColumnRight
        End With
       End With
  For Each C In Feuil5.Range("A1", Feuil5.[A65000].End(xlUp)(1))
    Lv.ListItems.Add , , C
    Lv.ListItems(Lv.ListItems.Count).ForeColor = C.Interior.Color
    Lv.ListItems(Lv.ListItems.Count).ListSubItems.Add , , C(1, 2)
    Lv.ListItems(Lv.ListItems.Count).ListSubItems(1).ForeColor = C.Interior.Color
    Lv.ListItems(Lv.ListItems.Count).ListSubItems.Add , , Replace(Format(C(1, 3), "0.00"), ",", ".")
    Lv.ListItems(Lv.ListItems.Count).ListSubItems(2).ForeColor = C.Interior.Color
  Next
End Sub



' ------ Tri lors de la sélection d'une colonne ----------

Private Sub Lv_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
    Lv.Sorted = False
    Lv.SortKey = ColumnHeader.Index - 1
   
    If Lv.SortOrder = lvwAscending Then
        Lv.SortOrder = lvwDescending
        Else
        Lv.SortOrder = lvwAscending
    End If
   
    Lv.Sorted = True
End Sub

Private Sub Lv_ItemClick(ByVal li As MSComctlLib.ListItem)
  Dim t$, Col As Byte
 
  t = Left(li, 1)
    'Col = IIf(T = "B" Or T = "P" Or T = "V" Or T = "N" Or T = "H", 5, 3)
  Col = 4 '2 au lieu de 5 ou 3
   
  ActiveCell.Resize(1, 1).Interior.ColorIndex = xlNone  '.Resize(1, 1) au leiude .Resize(1, 5)
  If li = "" Then Unload Me: Exit Sub

  If Not Left(li, 1) = "C" Then ActiveCell.Resize(1, 1).Interior.Color = Lv.ListItems(li.Index).ForeColor
  '.Resize(1, 1) au lieu de .Resize(1, 2)
  ' Pas de mise en couleur si le code commence par la lettre C.
 
  ActiveCell = li 'Recopie du code
  'ActiveCell(1, 2) = Lv.ListItems(li.Index).ListSubItems(1) 'Recopie du libellé
  ActiveCell.Interior.Color = Lv.ListItems(li.Index).ForeColor '???
 
    If Left(li, 1) = "Z" Then
    ActiveCell(1, 1).Select
    Libellé.Show
    Unload Me
    Exit Sub
    End If
   
    If li = "Divers" Then
    ActiveCell(1, 1).Select
    ListView_Codes_Bte2.Show
    Unload Me
    Exit Sub
    End If
   
    If li = "Spécial" Then
    ActiveCell(1, 1).Select
    ListView_Codes_Bte3.Show
    Unload Me
    Exit Sub
    End If
   
    If li = "Saisie" Then
    ActiveCell(1, 1).Select
    Libellé.Show
    Unload Me
    Exit Sub
    End If
   
    If li = "Marg." Then
    ActiveCell(1, 1).Select
    Libellé_Margarine.Show
    Unload Me
    Exit Sub
    End If
   
 
  'ActiveCell(1, Col) = Lv.ListItems(li.Index).ListSubItems(2)
 
  'ActiveCell(1, 3) = Lv.ListItems(li.Index).ListSubItems(2) 'Ancien code
     
      If Not Lv.ListItems(li.Index).ListSubItems(2) = "" Then
        ActiveCell(1, Col).NumberFormat = "0.00"
        ActiveCell(1, Col) = (Lv.ListItems(li.Index).ListSubItems(2))
      End If
 
  ActiveCell(1, Col).Select
  Unload Me
End Sub



Private Sub UserForm_Activate()
Me.Top = 46
Me.Left = 514
End Sub
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour;

Exemple

Code:
Private Sub ListView1_Click()
  Me.TextBox1 = ListView1.SelectedItem
  For k = 2 To NbCol
    Me("textbox" & k) = ListView1.SelectedItem.ListSubItems(k - 1).Text
  Next k
  Me.Enreg = ListView1.SelectedItem.ListSubItems(NbCol).Text
End Sub

Boisgontier
 

Pièces jointes

  • Copie de ComboBoxListViewFiltreCle2.xls
    154.5 KB · Affichages: 57

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…