Actualiser des champs textbox d'un userform depuis une listbox
Résolu/Fermé
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
-
Modifié par kellyp13 le 17/03/2015 à 09:19
kellyp13 Messages postés 22 Date d'inscription mardi 17 mars 2015 Statut Membre Dernière intervention 18 mars 2015 - 17 mars 2015 à 16:00
kellyp13 Messages postés 22 Date d'inscription mardi 17 mars 2015 Statut Membre Dernière intervention 18 mars 2015 - 17 mars 2015 à 16:00
Bonjour,
Actuellement sur un projet VBA je bloque sur une partie du code j'ai créer un userform dans lequel j'ai une listbox qui est renseigner depuis un tableau excel et j'aimerais qu'une fois que je selectionne un produit dans la listbox mes champs vide concernant ce produit dans le userform ce remplissent automatique je ne vois pas comment faire pourriez m'éclairer?
Merci
Actuellement sur un projet VBA je bloque sur une partie du code j'ai créer un userform dans lequel j'ai une listbox qui est renseigner depuis un tableau excel et j'aimerais qu'une fois que je selectionne un produit dans la listbox mes champs vide concernant ce produit dans le userform ce remplissent automatique je ne vois pas comment faire pourriez m'éclairer?
Merci
A voir également:
- Actualiser des champs textbox d'un userform depuis une listbox
- Champs calculé tcd formule si - Forum Excel
- Bouton actualiser google chrome ✓ - Forum Réseaux sociaux
- Quelle touche pour "actualiser" ✓ - Forum Réseaux sociaux
- Ou est il ce bouton actualiser,? - Forum Réseaux sociaux
- Bouton d'actualisation sur page web ? ✓ - Forum Webmastering
5 réponses
VlkPr3s
Messages postés
235
Date d'inscription
vendredi 30 mai 2014
Statut
Membre
Dernière intervention
27 juin 2016
130
17 mars 2015 à 09:25
17 mars 2015 à 09:25
la propriété checkedlistbox ? pour récupérer les valeurs sélectionnées non ? sinon si tu peux changer de langage fait ça en C#, c'est beaucoup plus fun et viable :)
Doudounetto
Messages postés
87
Date d'inscription
lundi 10 novembre 2014
Statut
Membre
Dernière intervention
16 janvier 2017
30
17 mars 2015 à 09:35
17 mars 2015 à 09:35
Bonjour,
Dans un premier temps, ton code doit se situer la dedans:
Les données de chaque produit sont elles aussi dans une feuille excel?
Dans un premier temps, ton code doit se situer la dedans:
Private Sub ListBox_Click() 'Lorsque tu clique sur ta listBox... 'remplir les champs vides End Sub
Les données de chaque produit sont elles aussi dans une feuille excel?
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 09:49
17 mars 2015 à 09:49
Bonjour,
Oui elles sont dans ma feuille de calcul excel sous forme de tableau
Oui elles sont dans ma feuille de calcul excel sous forme de tableau
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
>
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 09:52
17 mars 2015 à 09:52
J'essaie de vous mettre une photo pour que vous voyez
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 10:27
17 mars 2015 à 10:27
Par contre c'est exectement ce que je veux faire cliquer sur la listbox sur un produit et que ca remplisse le reste
Doudounetto
Messages postés
87
Date d'inscription
lundi 10 novembre 2014
Statut
Membre
Dernière intervention
16 janvier 2017
30
17 mars 2015 à 10:53
17 mars 2015 à 10:53
Je ne vois pas de photo...
Si les données produit sont dans une feuille excel du même classeur, il faut dire à ton programme d'activer ta feuille, pour pouvoir en lire les données:
(Je part du principe que toutes les données sont dans une seule et même feuille de calcul, organisées et tout, et tout, et que le nom du produit y figure (en première colonne par exemple:)
Ensuite, une fois que le programme sait qu'il faut bosser sur cette feuille, il faut parcourir toutes les données de la feuille de calcul:
Je ne suis pas sur de la condition du If, il va falloir faire très certainement des tests pour arriver à quelque chose qui fonctionne. Je vous ai donné une piste à exploiter, à vous de la modifier pour la faire correspondre à la présentation de vos données sous excel... Si vous avez un problème, je reste dispo.
Si les données produit sont dans une feuille excel du même classeur, il faut dire à ton programme d'activer ta feuille, pour pouvoir en lire les données:
(Je part du principe que toutes les données sont dans une seule et même feuille de calcul, organisées et tout, et tout, et que le nom du produit y figure (en première colonne par exemple:)
ThisWorkbook.Worksheets("Données produit").Activate '"Données produit" correspond 'au nom qui a été donné à la feuille 'contenant les données des produits
Ensuite, une fois que le programme sait qu'il faut bosser sur cette feuille, il faut parcourir toutes les données de la feuille de calcul:
'permet de parcourir toute la feuille jusqu'à la dernière cellule For i = 1 To ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row 'Ensuite on regarde si le nom du produit sélectionné se trouve 'dans la colonne "A" de la feuille: 'Si la selection ListBox == une valeur dans le parcours de ma feuille Alors If (ListBox.List(ListBox.ListIndex,0) == Range("A" & i).Value ) Then 'ListBox.List(ListBox.ListIndex,0) est la valeur selectionée 'Range("A" & i).Value est la valeur de la celleule lue dans la 'colonne A de la feuille 'je vous conseille de débuger avec des 'MsgBox() pour vérifier le fonctionnement du If 'une fois que le If est Vrai: TextBox.text = la valeur d'une autre colonne (référence par exemple) 'La valeur se récupère aussi avec un Range("B"&i).Value (qui correspond à une cellule) End If Next
Je ne suis pas sur de la condition du If, il va falloir faire très certainement des tests pour arriver à quelque chose qui fonctionne. Je vous ai donné une piste à exploiter, à vous de la modifier pour la faire correspondre à la présentation de vos données sous excel... Si vous avez un problème, je reste dispo.
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 10:58
17 mars 2015 à 10:58
Impossible de mettre la photo elle ne charge pas
Je vais essayer merci beaucoup
Je vais essayer merci beaucoup
Doudounetto
Messages postés
87
Date d'inscription
lundi 10 novembre 2014
Statut
Membre
Dernière intervention
16 janvier 2017
30
17 mars 2015 à 10:59
17 mars 2015 à 10:59
Idem pour le for. Le principe est de rechercher dans la feuille le nom du produit selectionné dans la listBox. Si le nom du produit n'est présenté que dans une seule colonne, il n'est pas necessaire de parcourir toute la feuille de calcul...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 759
17 mars 2015 à 11:30
17 mars 2015 à 11:30
Bonjour,
Admettons que le contenu de votre listbox soit la colonne B de votre feuille "Donnees". (j'ai volontairement mélangé l'ordre des colonnes...)
Pour placer un fichier sur le forum, il faut aller créer un lien vers ce fichier sur cjoint et coller ce lien dans une réponse. Comme ceci :
https://www.cjoint.com/c/ECrlPpr0It3
Il s'agit d'un exemple de listbox cliquable...
Admettons que le contenu de votre listbox soit la colonne B de votre feuille "Donnees". (j'ai volontairement mélangé l'ordre des colonnes...)
Private Sub ListBox1_Click() Dim Lign As Integer If ListBox1.ListIndex = -1 Then Exit Sub With Sheets("Donnees") Lign = .Columns(2).Cells.Find(ListBox1.List(ListBox1.ListIndex)).Row TextBox1 = .Range("A" & Lign) TextBox2 = .Range("C" & Lign) TextBox3 = .Range("D" & Lign) TextBox4 = .Range("F" & Lign) TextBox5 = .Range("H" & Lign) TextBox6 = .Range("K" & Lign) TextBox7 = .Range("I" & Lign) TextBox8 = .Range("J" & Lign) End With End Sub
Pour placer un fichier sur le forum, il faut aller créer un lien vers ce fichier sur cjoint et coller ce lien dans une réponse. Comme ceci :
https://www.cjoint.com/c/ECrlPpr0It3
Il s'agit d'un exemple de listbox cliquable...
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 11:54
17 mars 2015 à 11:54
Super merci
voici le lien vers mon document
http://www.cjoint.com/data3/3CrmgcmDyea.htm
voici le lien vers mon document
http://www.cjoint.com/data3/3CrmgcmDyea.htm
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 759
>
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 11:57
17 mars 2015 à 11:57
Oui... Pourquoi faire ton document?
Mon code ne fonctionne pas?
ps : je t'ai simplement indiqué comment faire, pour l'avenir...
Mon code ne fonctionne pas?
ps : je t'ai simplement indiqué comment faire, pour l'avenir...
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 12:00
17 mars 2015 à 12:00
C'etait juste pour tester ^^
le code ca m'a l'air parfait je vais le tester de suite
le code ca m'a l'air parfait je vais le tester de suite
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 759
>
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 12:07
17 mars 2015 à 12:07
et bien ... ça fonctionne!
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 12:11
17 mars 2015 à 12:11
MERCI BEAUCOUP CA MARCHE !!!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 14:43
17 mars 2015 à 14:43
Petite question supplémentaire
J'aimerais multiplier un pourcentage que je choisi avec des option button soit (5.5% soit 20%) une fois selectionner j'aimerais qu'il multiplie ce pourcentage avec mon montant HT calculé avant dans un label?
J'aimerais multiplier un pourcentage que je choisi avec des option button soit (5.5% soit 20%) une fois selectionner j'aimerais qu'il multiplie ce pourcentage avec mon montant HT calculé avant dans un label?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 759
17 mars 2015 à 15:01
17 mars 2015 à 15:01
Dans le cas de ton fichier donné plus haut :
Private Sub OptionButton1_Click() If Label11.Caption = "" Then Exit Sub Label13.Caption = Val(Label11.Caption) * 5.5 / 100 Label12.Caption = Val(Label11.Caption) + Val(Label13.Caption) End Sub Private Sub OptionButton2_Click() If Label11.Caption = "" Then Exit Sub Label13.Caption = Val(Label11.Caption) * 20 / 100 Label12.Caption = Val(Label11.Caption) + Val(Label13.Caption) End Sub
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 15:04
17 mars 2015 à 15:04
Je vais essayer merci beaucoup
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 15:22
17 mars 2015 à 15:22
C'est bisard alors c'est surement que j'ai fait une erreur mais pour 5.5% ca ne marche pas le resultat est bsiard
https://www.cjoint.com/c/ECrpIwAumPS
https://www.cjoint.com/c/ECrpIwAumPS
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 759
>
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
17 mars 2015 à 15:32
17 mars 2015 à 15:32
Normal, rien à voir avec le code que je t'ai donné..........................
Ton code :
Rien que la première ligne fausse déjà ton calcul...
CInt transforme un nombre stocké sous forme de texte en valeur numérique......ENTIERE. Donc CInt("1234,45") = 1234
Il convient donc d'utiliser CDbl() ou Val()
Ensuite, tu ne testes pas quel est l'optionbutton cliqué... Donc, le clic sur un bouton réalise les 2 opérations à la suite...
x 5.5% puis x20%...
Donc, puisque tu utilises un bouton de commande et plus le clic sur l'optionbutton, essaye ceci :
Ton code :
Private Sub CommandButton4_Click() Label11.Caption = CStr(CInt(TextBox1.Text) * CInt(Label17.Caption)) Label11.Caption = Format(Label11.Caption, "#,####0.00€") If Label11.Caption = "" Then Exit Sub Label13.Caption = Val(Label11.Caption) * 5.5 / 100 Label12.Caption = Val(Label11.Caption) + Val(Label13.Caption) If Label11.Caption = "" Then Exit Sub Label13.Caption = Val(Label11.Caption) * 20 / 100 Label12.Caption = Val(Label11.Caption) + Val(Label13.Caption) End Sub
Rien que la première ligne fausse déjà ton calcul...
CInt transforme un nombre stocké sous forme de texte en valeur numérique......ENTIERE. Donc CInt("1234,45") = 1234
Il convient donc d'utiliser CDbl() ou Val()
Ensuite, tu ne testes pas quel est l'optionbutton cliqué... Donc, le clic sur un bouton réalise les 2 opérations à la suite...
x 5.5% puis x20%...
Donc, puisque tu utilises un bouton de commande et plus le clic sur l'optionbutton, essaye ceci :
Private Sub CommandButton4_Click() Label11.Caption = CStr(Val(TextBox1.Text) * Val(Label17.Caption)) Label11.Caption = Format(Label11.Caption, "#,####0.00€") If OptionButton1.Value = True Then Label13.Caption = Val(Label11.Caption) * 5.5 / 100 Label12.Caption = Val(Label11.Caption) + Val(Label13.Caption) Else Label13.Caption = Val(Label11.Caption) * 20 / 100 Label12.Caption = Val(Label11.Caption) + Val(Label13.Caption) End If End Sub
kellyp13
Messages postés
22
Date d'inscription
mardi 17 mars 2015
Statut
Membre
Dernière intervention
18 mars 2015
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
17 mars 2015 à 15:41
17 mars 2015 à 15:41
Desoler je suis pas très forte en VBA
La j'ai mi exactement le code que tu m'as donner mais ca ne marche pas
https://www.cjoint.com/c/ECrp05BGCHL
La j'ai mi exactement le code que tu m'as donner mais ca ne marche pas
https://www.cjoint.com/c/ECrp05BGCHL