Modifier la valeur d'une listbox
Résolu
leyjah
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Modifier la valeur d'une listbox
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier une story facebook - Guide
- Modifier extension fichier - Guide
- Vous avez besoin d'une autorisation de la part de système pour modifier ce dossier - Guide
5 réponses
Bonjour,
Voici comment je procèderai :
1- création d'un module standard
2- dans ce module, déclarer 3 variables public :
3- Le code du bouton de l'userufom CLIENTS devient :
4- le code du bouton "Modifier" dans l'userform "modification" :
5- subsidiaire : il faudrait éventuellement empêcher la saisie, dans les textbox, d'un item déjà existant dans les listbox... Ou pas!
Cordialement,
Franck P
Voici comment je procèderai :
1- création d'un module standard
2- dans ce module, déclarer 3 variables public :
Public Var1 As String Public Var2 As String Public Var3 As String
3- Le code du bouton de l'userufom CLIENTS devient :
Private Sub CommandButton1_Click() Var1 = zn1.Value Var2 = zn2.Value Var3 = zn3.Value With modification .zdt1 = zn1.Value .zdt2 = zn2.Value .zdt3 = zn3.Value .Show End With End Sub
4- le code du bouton "Modifier" dans l'userform "modification" :
Private Sub CommandButton1_Click() Dim i As Integer With CLIENTS For i = 0 To .zn1.ListCount - 1 If .zn1.List(i) = Var1 Then .zn1.List(i) = zdt1.Value Next i For i = 0 To .zn2.ListCount - 1 If .zn2.List(i) = Var2 Then .zn2.List(i) = zdt2.Value Next i For i = 0 To .zn3.ListCount - 1 If .zn3.List(i) = Var3 Then .zn3.List(i) = zdt3.Value Next i modification.Hide End With End Sub
5- subsidiaire : il faudrait éventuellement empêcher la saisie, dans les textbox, d'un item déjà existant dans les listbox... Ou pas!
Cordialement,
Franck P
j'ai encore un petit problème qui persiste:
à ce niveau là :
Private Sub CommandButton1_Click()
Dim i As Integer
With CLIENTS
For i = 0 To .zn1.ListCount - 1
If .zn1.List(i) = Var1 Then .zn1.List(i) = zdt1.Value
Next i
For i = 0 To .zn2.ListCount - 1
If .zn2.List(i) = Var2 Then .zn2.List(i) = zdt2.Value
Next i
For i = 0 To .zn3.ListCount - 1
If .zn3.List(i) = Var3 Then .zn3.List(i) = zdt3.Value
Next i
modification.Hide
End With
zdt3.value en général contient un produit (la valeur de la zdt2 * une valeur présente dans une cellule de ma feuille de calcul).
Est-ce que tu peux m'éclairer un peu STP.
CDLT
à ce niveau là :
Private Sub CommandButton1_Click()
Dim i As Integer
With CLIENTS
For i = 0 To .zn1.ListCount - 1
If .zn1.List(i) = Var1 Then .zn1.List(i) = zdt1.Value
Next i
For i = 0 To .zn2.ListCount - 1
If .zn2.List(i) = Var2 Then .zn2.List(i) = zdt2.Value
Next i
For i = 0 To .zn3.ListCount - 1
If .zn3.List(i) = Var3 Then .zn3.List(i) = zdt3.Value
Next i
modification.Hide
End With
zdt3.value en général contient un produit (la valeur de la zdt2 * une valeur présente dans une cellule de ma feuille de calcul).
Est-ce que tu peux m'éclairer un peu STP.
CDLT
Bonjour,
Suffit, une fois zn2 modifié, de multiplier sa valeur par la valeur contenue dans la cellule.
Suffit, une fois zn2 modifié, de multiplier sa valeur par la valeur contenue dans la cellule.
Private Sub CommandButton1_Click() Dim i As Integer With CLIENTS For i = 0 To .zn1.ListCount - 1 If .zn1.List(i) = Var1 Then .zn1.List(i) = zdt1.Value Next i For i = 0 To .zn2.ListCount - 1 If .zn2.List(i) = Var2 Then .zn2.List(i) = zdt2.Value .zn3.List(i) = zdt2.Value * Sheets("Machin").Range("Truc") End If Next i modification.Hide End With
http://cjoint.com/data/0Dto1NU7Kbu.htm
ainsi tu comprendra peut être mieux ce que je souhaite parce que ça:
.zn3.List(i) = zdt2.Value * Sheets("Machin").Range("Truc")
ne pourra pas fonctionné puisque les cellules varient en fonction du produit sélectionné.
Cdlt
Leyjah
ainsi tu comprendra peut être mieux ce que je souhaite parce que ça:
.zn3.List(i) = zdt2.Value * Sheets("Machin").Range("Truc")
ne pourra pas fonctionné puisque les cellules varient en fonction du produit sélectionné.
Cdlt
Leyjah
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En effet.
Alors tu dois :
- insérer un module (Insertion/module sous VBE)
y placer ces déclarations :
2- le bouton Modifier de l'Userform Clients devient:
3- le bouton Modifier de l'Userform modifications devient :
Ton fichier exemple en retour
Alors tu dois :
- insérer un module (Insertion/module sous VBE)
y placer ces déclarations :
Public Var1 As String Public Var2 As String Public Var3 As String
2- le bouton Modifier de l'Userform Clients devient:
Private Sub CommandButton1_Click() Var1 = zn1.Value Var2 = zn2.Value Var3 = zn3.Value With modification .zdt1 = zn1.Value .zdt2 = zn2.Value .zdt3 = zn3.Value .Show End With End Sub
3- le bouton Modifier de l'Userform modifications devient :
Private Sub CommandButton1_Click() Dim i As Integer, Prix As Double, Trouve As Range 'va chercher la cellule colonne A contenant la sélection dans la list zn1 With Sheets("Feuil1") Set Trouve = .Columns(1).Cells.Find(Var1, lookat:=xlWhole) End With 's'il trouve alors on stocke dans prix le contenu de la colonne C correspondant Sinon on ne fait rien de plus If Not Trouve Is Nothing Then Prix = Trouve.Offset(0, 2).Value Else Exit Sub With CLIENTS For i = 0 To .zn1.ListCount - 1 If .zn1.List(i) = Var1 Then .zn1.List(i) = zdt1.Value Next i For i = 0 To .zn2.ListCount - 1 If .zn2.List(i) = Var2 Then .zn2.List(i) = zdt2.Value .zn3.List(i) = zdt2.Value * Prix End If Next i modification.Hide End With End Sub
Ton fichier exemple en retour
ça fonctionne parfaitement.
CDLT
Leyjah