Actualiser des champs textbox d'un userform depuis une listbox
Résolu
kellyp13
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
kellyp13 Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
kellyp13 Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Actualiser des champs textbox d'un userform depuis une listbox
- Word mettre à jour tous les champs - Forum Word
- Que veut dire actualiser son statut sur facebook ✓ - Forum Facebook
- Actualiser sa photo de profile ✓ - Forum Facebook
- Actualiser tcd google sheet - Forum Bureautique
- Le nom du champs de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
5 réponses
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 :)
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?
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.
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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?
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
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
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
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