Cliquer et modifier subitems d une listview

vmatthieu

XLDnaute Occasionnel
Bonsoir à tous,
j'ai cherché mais en vain. Visiblement plusieurs bout de code existent ça et là mais rien que je n'arrive à faire fonctionner.:(

J'ai une listview avec plusieurs lignes et plusieurs colonnes. Je voudrais par un clic ou un double click sur un subitems pouvoir modifier cette valeur. Le fait de passer par un textbox ne me pose pas de problème mais le plus dur la dedans pour moi et de pouvoir récupérer le numéro de ligne et de colonne ( et accessoirement de pouvoir cliquer sur un subitems parce que pour l'instant je n'y arrive pas.

Ma demande n'est sans doute pas impossible pour beaucoup mais moi là je sèche.:(

Vous remerciant par avance
bonne soirée
 

Dranreb

XLDnaute Barbatruc
Re : Cliquer et modifier subitems d une listview

Bonsoir.
Pour la sélection d'une colonne précise d'une ligne précise, d'une cellule en somme, je ne sais pas. Pour copier tous les champs de cette ligne dans des TextBox, vous n'avez pas forcément besoin de connaitre son numéro de ligne: l'évènement ItemClick vous passe en paramètre un objet Item qui représente la ligne. Je dis bien la ligne elle même et pas autre chose, ce qui veut dire qu'il est directement muni de la propriété Text pour sa 1ère colonne et de la collection SubItems
 

vmatthieu

XLDnaute Occasionnel
Re : Cliquer et modifier subitems d une listview

bonjour,
merci pour vos réponse
Si , je n'arrive pas à charger ton ficher (objet non présent sur cette machine ????)
mais sinon j'ai trouve une solution sur ce même site

au chargement de la listview



UserForm2.ListView1.ListItems.Add , , t(li, 3)
UserForm2.ListView1.ListItems(.ListItems.Count).Tag = K






Private Sub ListView1_DblClick()
N°_LIGNE = UserForm2.ListView1.SelectedItem.Tag
INDEX_ITEM_LISTVIEW = UserForm2.ListView1.SelectedItem.Index

With UserForm4
.TextBox1.Value = UserForm2.ListView1.SelectedItem.Text
.TextBox2.Value = UserForm2.ListView1.SelectedItem.ListSubItems(1).Text
.TextBox3.Value = UserForm2.ListView1.SelectedItem.ListSubItems(2).Text
.TextBox4.Value = UserForm2.ListView1.SelectedItem.ListSubItems(3).Text
.TextBox5.Value = UserForm2.ListView1.SelectedItem.ListSubItems(4).Text
.TextBox6.Value = UserForm2.ListView1.SelectedItem.ListSubItems(5).Text
.TextBox7.Value = UserForm2.ListView1.SelectedItem.ListSubItems(7).Text
.TextBox8.Value = UserForm2.ListView1.SelectedItem.ListSubItems(8).Text

.Show vbModeless
End With

End Sub

cela charge toute la ligne
sinon une autre solution pour avoir le n° de colonne
https://www.excel-downloads.com/thr...olonne-apres-un-clic-dans-une-cellule.158413/

la deuxième solution en créant un tableau fonctionnne

bonne fin de journée
 

Si...

XLDnaute Barbatruc
Re : Cliquer et modifier subitems d une listview

salut

voilà les lignes écrites dans la page de code de l'UsF
Code:
Dim L As Long, Col As Byte, C As Range
Private Sub UserForm_Initialize()
  For L = 1 To 4
    ListView1.ColumnHeaders.Add , , Cells(2, L), 100
  Next
  For Each C In Range("A3", Cells(Rows.Count, 1).End(xlUp))
    ListView1.ListItems.Add , , C
    For L = 2 To 4
      ListView1.ListItems(ListView1.ListItems.Count).ListSubItems.Add , , C(1, L)
    Next
  Next
End Sub
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
  TextBox1 = ""
End Sub
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
  L = ListView1.SelectedItem.Index + 2: Col = ColumnHeader.Index
  TextBox1 = Cells(L, Col)
End Sub
Private Sub CommandButton1_Click()
  Cells(L, Col) = TextBox1
  Unload Me: UserForm1.Show
End Sub

clic sur une ligne puis clic sur colonne donnent la donnée voulue.

Je me sers d'un fichier du lien pour voir maintenant Si... tu peux lire.Tiens moi au courant s'il te plait.
 

Pièces jointes

  • ListView.xls
    57 KB · Affichages: 181
  • ListView.xls
    57 KB · Affichages: 152
  • ListView.xls
    57 KB · Affichages: 258

vmatthieu

XLDnaute Occasionnel
Re : Cliquer et modifier subitems d une listview

rebonjour,
même si j'ai ma solution j'ai essayé quand même de retester
même message impossible d'ouvrir car l'objet n'est pas sur cette machine

cela s'ouvre quand même mais au chargement de uf
cela bloque sur
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)

bibliothèque introuvable

laquelle me manque t'il ?? je l'ignore

enfin je le redis pour moi cela fonctionne mais c'est vrai que par curiosité j'aimerais bien savoir pourquoi cea ne fonctionne pas
bonne fin de journée
 

Dranreb

XLDnaute Barbatruc
Re : Cliquer et modifier subitems d une listview

Bonsoir.
Ça arrive assez fréquemment avec les ListView que l'objet ne soit pas défini dans les mêmes dossiers d'une machine à l'autre.
Vérifiez si la référence à MSComCtlLib n'est pas portée MANQUANT. Si c'est le cas décochez la, mettez la bonne à la place et réinstallez une ListView dans L'Userform.
 

vmatthieu

XLDnaute Occasionnel
Re : Cliquer et modifier subitems d une listview

bonsoir.
En théorie je suis d'accord (enfin je dis ça pour crâner parce que je n'y connais pas grand chose:)) mais comment vérifier que c'est porté manquant, la décocher et la mettre à la bonne place.
bonne soirée

PS Au passage Dranreb, merci pour tes nombreuses réponses!!
 

Dranreb

XLDnaute Barbatruc
Re : Cliquer et modifier subitems d une listview

C'est écrit en clair comme ça: "MANQUANT" dans VBA, Menu Outils, Références… Et la décocher est tout ce qu'on peut faire.
Elle peut parfois empêcher le chargement de la bonne car l'ajout se fait par référence au fichier tandis qu'une fois ajoutée elle est connue sous son nom de bibliothèque. Or ce nom est déjà pris par la référence manquante.
 
Dernière édition:

Statistiques des forums

Discussions
312 305
Messages
2 087 072
Membres
103 455
dernier inscrit
saramachado