VBA Actualiser TextBox en temps réel

Résolu/Fermé
Lila - Modifié par Lila le 11/12/2011 à 09:10
 Lila - 11 déc. 2011 à 22:43
Bonjour,

Je débute en VBA et je bloque sur un point... J'aimerais que mon textbox s'actualise automatiquement.

Dans un userform, j'ai un textbox qui fait apparaitre un montant (qui est sur une cellule Excel) et une listbox qui contient 2 valeurs (qui proviennent également d'une feuille Excel).
Lorsque je clique sur l'une des 2 valeurs, je veux que le montant s'actualise.

Dans le textbox : Montant à payer : 30 € (Range"A1" = 30)
Dans la listbox : Frais de port : 5 € (Range"A2" = 5)
3€ (Range"A3" = 3)

Si je clique sur 5€ dans la listbox, le montant à payer dans le textbox = 35€
Si je clique sur 3€, le montant à payer = 33€

Sub Listbox_Cliquer()
If [cliquer sur 5] Then [montant à payer textbox = 35]
ElseIf [cliquer sur 3] Then [montant à payer textbox = 33,50]
End If
End Sub

Merci beaucoup pour votre aide !!!

4 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 déc. 2011 à 11:06
Bonjour,
Private Sub ListBox1_Click()
    With Sheets("Feuil1")
        TextBox1 = .[A1] + .[A2].Offset(ListBox1.ListIndex).Value
    End With
End Sub

A coller dans le code de l'userform.
Pas oublier d'adapter le nom de la feuille où se trouve A1..A2 et A3
A+
1
Merci beaucoup ! Je teste ça tout de suite.
0
Ca marche parfaitement, merci encore !
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
11 déc. 2011 à 09:50
Bonjour,

A quoi sert votre textbox (affichage ,.....)
0
Le textbox sert à indiquer le montant total d'achat
0
Comment fait-on si l'on souhaite additionner une plage de cellule ? J'ai testé cette écriture (en gras) mais cela ne marche pas :

Private Sub ListBox2_Click()
With Sheets("Feuil1")
TextBox2 = .[A1:A26] + .[B3].Offset(ListBox2.ListIndex).Value
End With
End Sub

Merci d'avance.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 déc. 2011 à 12:17
En VBA ce serai..
Private Sub ListBox2_Click()
Dim Ligne As Long, Tot As Double
    With Sheets("Feuil1")
        For Ligne = 1 To 26
            Tot = Tot + .Cells(Ligne, 1)
        Next
        TextBox2 = Tot + .[B3].Offset(ListBox2.ListIndex).Value
    End With
End Sub

Mais possible aussi d'employer une fonction excel.
0
Ok merci ! :)
0