Cliquer et modifier subitems d une listview

  • Initiateur de la discussion Initiateur de la discussion vmatthieu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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

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
 
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.
 
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!!
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
157
Réponses
11
Affichages
398
  • Question Question
Microsoft 365 Excel et Insee
Réponses
6
Affichages
490
  • Question Question
Réponses
19
Affichages
2 K
Retour