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

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. Lila
       
      Merci beaucoup ! Je teste ça tout de suite.
      0
    2. Lila
       
      Ca marche parfaitement, merci encore !
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    A quoi sert votre textbox (affichage ,.....)
    0
    1. Lila
       
      Le textbox sert à indiquer le montant total d'achat
      0
  3. 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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. Lila
       
      Ok merci ! :)
      0