Modifier la valeur d'une listbox
Résolu
leyjah
Messages postés
16
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
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
- Comment modifier une story sur facebook - Guide
- Vous avez besoin d'une autorisation de la part de système pour modifier ce dossier - Guide
- Modifier extension fichier - 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