Salut à tous, je tourne en rond depuis un moment, voici mon problème :
J'ai une zone de liste, remplie de différentes valeurs, quand j'appuie sur un bouton après avoir selectionné une valeur, je veux la supprimer de ma liste, comment faire ?
Salut à tous, je tourne en rond depuis un moment, voici mon problème :
J'ai une zone de liste, remplie de différentes valeurs, quand j'appuie sur un bouton après avoir selectionné une valeur, je veux la supprimer de ma liste, comment faire ?
Bonjour,
Si tu as liste de valeurs, c'est à dire que qu'elles sont saisies et non le resultat d'une requêtes, tu peux jouer sur la source :
Petit bémol, il faudra gérer le cas ou c'est la toute premiere valeur qui est supprimer sinon cela fait blanc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ' supprimer la valeur correspondante Liste1.RowSource = Replace(Liste1.RowSource, Liste1.Column(0, Liste1.ListIndex), "") 'supprimer les ; en trop Liste1.RowSource = Replace(Liste1.RowSource, ";;", ";")
Cordialement,
lanonyme
Ok merci voici ce que j'ai finalement réalisé :
Ca fonctionne nickel!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Private Sub Liste_equip_KeyPress(KeyAscii As Integer) Dim rowsource As String If KeyAscii = 8 Then If (InStr(Me.Liste_equip.rowsource, Me.Liste_equip.Value) > 0) Then '//On retire de la liste source l'element selectionné rowsource = Left(Me.Liste_equip.rowsource, InStr(Me.Liste_equip.rowsource, Me.Liste_equip.Value) - 1) & Right(Me.Liste_equip.rowsource, Len(Me.Liste_equip.rowsource) - ((InStr(Me.Liste_equip.rowsource, Me.Liste_equip.Value) - 1) + (Len(Me.Liste_equip.Value)))) '//Si l'element selectionné était au milieu, on supprime le ";" en trop rowsource = Replace(rowsource, ";;", ";") '//Si l'element selectionné était en premier, on supprime le ";" en trop du début If (Left(rowsource, 1) = ";") Then rowsource = Right(rowsource, Len(rowsource) - 1) '//Si l'element selectionné était en dernier, on supprime le ";" en trop de la fin If (Right(rowsource, 1) = ";") Then rowsource = Left(rowsource, Len(rowsource) - 1) Me.Liste_equip.rowsource = rowsource End If End If End Sub![]()
Bonjour,
Comme cela fonctionne, pense au tag, en bas du sujet, merci
PS : En rapport avec ta discussion précédenteICI :
moi la touche suppr, a la valeur 46
PS: pense également à le mettre en résolu, si tu as trouvé la solution ou déléstage si tu pense qu'il n'a plus d'interêt
Cordialement,
lanonyme
Chez moi, la valeur 46 ne fonctionne pas !![]()
Bonjour,
J'avait pas fait attention mais apparement on parle pas du même code, c'est pour cela.
Moi j'utilisai le Keycode, et non le KeyAscii car c'est pas la même fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Liste0_KeyDown(KeyCode As Integer, Shift As Integer) MsgBox KeyCode End Sub
Voilà, un mystére de résolu
Cordialement,
lanonyme
Ok merci!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager