Modifier la valeur d'une listbox
Résolu
leyjah
Messages postés
16
Statut
Membre
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
Bonjour,
je sollicite votre aide parce que j'ai un petit souci avec mon appli.
Voici ce qui en est:
1. j'ai 2 userform: CLIENTS et modification
2. Dans CLIENTS, j'ai trois zone de liste, zn1 (produits), zn2 (quantité) zn3 (montant), un bouton de commande (MODIFIER).
3. grâce à MODIFIER, les valeurs sélectionnées en zn1, 2 et 3 sont transférés dans des zone de texte dans un userf modification.
CODE:
Private Sub CommandButton1_Click()
modification.zdt1 = zn1.Value
modification.zdt2 = zn2.Value
modification.zdt3 = zn3.Value
modification.Show
End Sub
Ce que je souhaiterai c'est que:
si je modifie les valeurs inscrite dans les zones de texte (zdt1, 2 et 3) de modification elle sont mise à jour dans les zones de liste (zn1, 2 et 3) de CLIENTS.
CODE TEST:
Private Sub CommandButton1_Click()
CLIENTS.zn1.RemoveItem
CLIENTS.zn2.RemoveItem
CLIENTS.zn3.RemoveItem
CLIENTS.zn1.AddItem zdt1.Value
CLIENTS.zn2.AddItem zdt2.Value
For i = 2 To 46
If zdt1.Value = Cells(i, 1) Then
CLIENTS.zn3.AddItem (zdt2.Value * Cells(i, 3))
End If
Next
modification.Hide
End Sub
MERCI POUR TOUTE L'AIDE DE VOUS POURRAI M'APPORTER
CDLT.
je sollicite votre aide parce que j'ai un petit souci avec mon appli.
Voici ce qui en est:
1. j'ai 2 userform: CLIENTS et modification
2. Dans CLIENTS, j'ai trois zone de liste, zn1 (produits), zn2 (quantité) zn3 (montant), un bouton de commande (MODIFIER).
3. grâce à MODIFIER, les valeurs sélectionnées en zn1, 2 et 3 sont transférés dans des zone de texte dans un userf modification.
CODE:
Private Sub CommandButton1_Click()
modification.zdt1 = zn1.Value
modification.zdt2 = zn2.Value
modification.zdt3 = zn3.Value
modification.Show
End Sub
Ce que je souhaiterai c'est que:
si je modifie les valeurs inscrite dans les zones de texte (zdt1, 2 et 3) de modification elle sont mise à jour dans les zones de liste (zn1, 2 et 3) de CLIENTS.
CODE TEST:
Private Sub CommandButton1_Click()
CLIENTS.zn1.RemoveItem
CLIENTS.zn2.RemoveItem
CLIENTS.zn3.RemoveItem
CLIENTS.zn1.AddItem zdt1.Value
CLIENTS.zn2.AddItem zdt2.Value
For i = 2 To 46
If zdt1.Value = Cells(i, 1) Then
CLIENTS.zn3.AddItem (zdt2.Value * Cells(i, 3))
End If
Next
modification.Hide
End Sub
MERCI POUR TOUTE L'AIDE DE VOUS POURRAI M'APPORTER
CDLT.
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