VBA Actualiser TextBox en temps réel

Résolu
Lila -  
 Lila -
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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
Lila
 
Merci beaucoup ! Je teste ça tout de suite.
0
Lila
 
Ca marche parfaitement, merci encore !
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

A quoi sert votre textbox (affichage ,.....)
0
Lila
 
Le textbox sert à indiquer le montant total d'achat
0
Lila
 
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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
Lila
 
Ok merci ! :)
0