Modifier la valeur d'une listbox
Résolu/Fermé
leyjah
Messages postés
16
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
24 avril 2013
-
22 avril 2013 à 17:26
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 25 avril 2013 à 08:36
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 25 avril 2013 à 08:36
A voir également:
- Modifier la valeur d'une listbox
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Comment modifier un pdf - Guide
- Modifier une story facebook - Guide
- Modifier sa voix en direct - Guide
5 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 23/04/2013 à 10:08
Modifié par pijaku le 23/04/2013 à 10:08
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
leyjah
Messages postés
16
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
24 avril 2013
23 avril 2013 à 18:55
23 avril 2013 à 18:55
non pas spécialement.
leyjah
Messages postés
16
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
24 avril 2013
23 avril 2013 à 19:26
23 avril 2013 à 19:26
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
24 avril 2013 à 08:42
24 avril 2013 à 08:42
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
leyjah
Messages postés
16
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
24 avril 2013
24 avril 2013 à 15:27
24 avril 2013 à 15:27
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
24 avril 2013 à 15:45
24 avril 2013 à 15:45
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
leyjah
Messages postés
16
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
24 avril 2013
24 avril 2013 à 19:41
24 avril 2013 à 19:41
Formidable merci BEAUCOUP Pijaku, c parfait
Cordialement
Leyjah
Cordialement
Leyjah
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
25 avril 2013 à 08:36
25 avril 2013 à 08:36
Mais de rien.
A+ n'hésite pas.
A+ n'hésite pas.
23 avril 2013 à 19:09
ça fonctionne parfaitement.
CDLT
Leyjah