Modifier le contenu des lignes d'une listView

Résolu
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010 - 28 déc. 2009 à 13:46
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010 - 29 déc. 2009 à 16:41
Bonjour,

Je souhaite modifier le contenu d'une listView. Plus précisément, je veux qu'après avoir sélectionné une ligne de la listView, la modifier ou l'effacer.

Comment pourrais je le faire?


Merci

Lil_monie

18 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
28 déc. 2009 à 13:53
salut,

plusieurs bouts de codes utiles :
http://www.codyx.org/recherche.aspx?r=listview

++

[hr]
3
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010
28 déc. 2009 à 14:49
Oki merci
Vais voir tout ça!!

Merci

Lil_monie
0
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010
29 déc. 2009 à 10:47
Re,

ben avec les codes que tu m'as donné, j'y arrive pas. C'est pas pareil!!


Merci

Lil_monie
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
29 déc. 2009 à 11:20
"j'y arrive pas" c'est pas une question si?

montre ton code et précise ce qui ne fonctionne pas (erreur, pas de suppression, mauvaise ligne, etc)
0

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

Posez votre question
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010
29 déc. 2009 à 11:29
c bon jy suis arrivé!

Parcontre j'aimerais savoir comment ajouter une ligne dans une listView sans que l'utulisateur ne passe par le code!!?

Merci

Lil_monie
0
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010
29 déc. 2009 à 11:38
Great, c bon. Me suis aidé des codes que tu m'as donné!!

Merci

Lil_monie
0
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010
29 déc. 2009 à 14:45
Parcontre au niveau de la modification d'une ligne sélectionné de ma listView, je ne peux modifier que la^première colonne de ma ligne.

En effet, quand je sélectionne une ligne et ke je clik sur modifier, j'arrive just à modifier ma première colle:


Private Sub CommandButton4_modifier_Click()
Call AppendLineToLV(Me.ListView2)
End Sub

Private Sub AppendLineToLV(ByRef LV As ListView, ParamArray vasValues() As Variant)
If (LV.ColumnHeaders.Count > 0) And (Not UBound(vasValues) = -1) Then
Dim LI As ListItem
Dim i As Integer
LV.ListItems.Add , , vasValues(0)
Set LI = LV.ListItems.Item(LV.ListItems.Count)
For i = 1 To UBound(vasValues)
If i = LV.ColumnHeaders.Count Then Exit For
LI.SubItems(i) = vasValues(i)
Next i
Set LI = Nothing
End If
End Sub




Merci

Lil_monie
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
29 déc. 2009 à 15:20
AppendLineToLV
Append ajoute
Line ligne
To vers
LV listview

ce code n'est pas celui d'une modification

regarde les liens....
http://www.codyx.org/snippet_modifier-facilement-contenu-cellule-listview_543.aspx#1707

++
0
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010
29 déc. 2009 à 15:29
Je ne comprends pas bien ce code!!

Merci

Lil_monie
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
29 déc. 2009 à 15:32
montre le tien, complet

sans çà comment veux-tu que je t'aide à trouver tes erreurs...
0
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010
29 déc. 2009 à 15:37
Enfin, je comprends bien le code mais comment l'appeler dans mon commandbouton_modifier?


Merci

Lil_monie
0
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010
29 déc. 2009 à 15:40
Voici comment se présente ma listView:

Private Sub CommandButton1_enregistrer_Click()
Call Enregistrer
Unload UserForm19
End Sub

Private Sub Enregistrer()
Dim i%, j%, k%, T$

i% = Sheets("rex_data").UsedRange.Rows.Count + 1

For i% = 1 To ListView2.ListItems.Count
For j% = 0 To ListView2.ColumnHeaders.Count - 1
If j% = 0 Then
T = ListView2.ListItems(i).Key
If Len(T) > 0 Then T = Right(T, Len(T) - 1)
k% = CInt(T)
Sheets("rex_data").Cells(k%, j% + 1).Value = ListView2.ListItems(i%).Text
Else
Sheets("rex_data").Cells(k%, j% + 1).Value = ListView2.ListItems(i%).ListSubItems(j%).Text
End If
Next j%
Next i%

End Sub

Private Sub CommandButton2_Effacer_Click()
ListView2.ListItems.Remove (ListView2.SelectedItem.Index)
End Sub

Private Sub UserForm_Initialize()
Dim i%, j%, T$, k%, Nb%

With ListView2
With .ColumnHeaders
.Clear 'Supprime les anciens entêtes
'Ajout des colonnes
.Add , , "N°", 20
.Add , , "N° Affaire", 45, lvwColumnCenter
.Add , , "Designation", 55, lvwColumnCenter
.Add , , "Client", 45, lvwColumnCenter
.Add , "MOE", 35, lvwColumnCenter
.Add , , "BE", 35, lvwColumnCenter
.Add , , "Montant Commande", 85, lvwColumnRight
.Add , , "Date", 60, lvwColumnCenter
.Add , , "Secteur d'activité du clien final", 89, lvwColumnCenter
.Add , , "Activité exercée par INEO", 80, lvwColumnCenter
.Add , , "Codification des métiers", 80, lvwColumnCenter
.Add , , "Heures chantier", 68, lvwColumnCenter
End With


.View = lvwReport 'affichage en mode Rapport
.Gridlines = True 'affichage d'un quadrillage
.FullRowSelect = True 'Sélection des lignes complètes
.HideSelection = False


With UserForm17.ListView1

For i = 1 To UserForm17.ListView1.ListItems.Count

ListView2.ListItems.Add , .ListItems(i).Key, .ListItems(i).Text ' pour la première ligne

For j = 1 To 11 ' pour les colonnes
' a modifier ou supprimer en fonction du nombre de colonnes

ListView2.ListItems(ListView2.ListItems.Count).ListSubItems.Add = .ListItems(i).ListSubItems(j).Text
Next j
Next i
End With

End With
End Sub




Merci

Lil_monie
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
29 déc. 2009 à 15:42
SetListViewValue nom_de_ta_liste, position_ligne, position_colonne, "nouvelle valeur"
0
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010
29 déc. 2009 à 15:44
Mais si je fais ça, c coe si cétai moi mêm ki modifiait ma lisView. Mais ce que moi je veux, c que l'utilisateur puisse le faire directement sur le UserForm.

Merci

Lil_monie
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
29 déc. 2009 à 15:53
seule la première colonne est modifiable, en donnant la main à l'utilisateur
ce par .LabelEdit = lvwAutomatic

pour travailler avec les autres colonnes tu dois faire ton propre userform qui va avoir autant de cellules de saisie que ton nombre de colonne, et ensuite ajouter ou modifier, par code

[hr]
0
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010
29 déc. 2009 à 16:17
Donc jne peux pas faire un code pour ke l'utilisateur ajoute ou modifie les données qui sont dans la listView?!!


Merci

Lil_monie
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
29 déc. 2009 à 16:39
ah c'est sûr que si tu ne lis même pas ce qu'on te répond l'utilisateur a intérêt d'être très patient

tu as 5 cases par exemple
la listview autorise SANS CODE a ne modifier que la première case

tu ne vas pas faire 5 INPUT
donc tu fais un userform avec 5 cases, l'utilisateur les remplit, tu récupères ces valeurs et les mets dans la ligne qu'il avait sélectionné, grâce au code indiqué précédemment
0
lilmonie Messages postés 51 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 18 janvier 2010
29 déc. 2009 à 16:41
Ok, donc pour modifier n'importe quel ligne sélectionné, faudrait créer un autre UserForm pour cela?!


Merci

Lil_monie
0