[USERFORM] allimentation d'une textbox selon listbox

Bonjour à tous !

Ca fait un bail que je ne suis pas venu sur le forum... mais j'aurai besoin de vouuuuus svp ^^

Enfin si possible...

Je vous explique mon probleme =>

J'ai crée un userform

une textbox1 qui me ramène la date du jour

et une listbox1 (la liste est dans la feuille 2 du classeur excel)

et une textbox2

j'aimerai traduire ceci en VBA =>

Si listbox1 = "ass-01" alors

on écris dans la zone textbox2 la date du jour moins 3 mois

j'ai essayé ceci =>

Sub UserForm_initialize()

TextBox1 = Date

Dim Plage As Range

rep = CDate(TextBox1)

Application.ScreenUpdating = False

With Worksheets("liste")

Set Plage = .Range("A1:a5" & .Cells(.Rows.Count, 1).End(xlUp).Row)

End With

If ListBox1.Value = "ass-01" Then

TextBox2.Value = DateSerial(Year(rep), Month(rep) - 3, 0)

End If

End Sub

Mais quelque soit la valeur de ma listbox1 , je n'ai rien en textbox2...

Pourriez vous me donner un coup de main svp ?

Bonjour manoss, bonjour le forum,

Le code n'est pas placé dans la bonne procédure ! Essaie comme ça :

Private rep As Date

Sub UserForm_initialize()
TextBox1 = Date
rep = CDate(TextBox1)
Me.ListBox1.List = Worksheets("liste").Range("A1:A" & Worksheets("liste").Cells(Application.Rows.Count, 1).End(xlUp).Row).Value
End Sub

Private Sub ListBox1_Click()
If ListBox1.Value = "ass-01" Then
    TextBox2.Value = DateSerial(Year(rep), Month(rep) - 3, Day(rep))
Else
    TextBox2.Value = ""
End If
End Sub

Action, réaction !!

Super rapide la réponse, et en plus ca fonctionne merci .

on est obligé de cliquer dans la liste? Il n'y a pas la possibilité juste en affichant une valeur de la liste?

Cordialement

Re,

Heu... Si ! Remplace la ligne :

Private Sub ListBox1_Click()

par :

Private Sub ListBox1_Change()

Ca ne marche pas avec le change()

pas de modif visible

par contre si je clique dans la zone de listbox , effectivement les données changent

Re,

Je ne comprends pas. Si Tu veux que ça s'affiche à l'ouverture de l'UserForm :

Private rep As Date

Sub UserForm_initialize()
TextBox1 = Date
rep = CDate(TextBox1)
Me.ListBox1.List = Worksheets("liste").Range("A1:A" & Worksheets("liste").Cells(Application.Rows.Count, 1).End(xlUp).Row).Value
Me.ListBox1.Value = "ass-01" 
End Sub

Ensuite ça se modifiera à chaque changement dans la ListBox1...

C'est le changement de valeur qui ne marche pas.

Avec le listbox_change(), j'ai le meme fonctionnement qu'avec listbox_click()

Salutations

Re,

Si, il marche mais tu as tellement réduit la hauteur de la ListBox1 que tu n'arrives pas à sélectionner une autre ligne. Agrandis la (au moins trois lignes) et tu verras... En fait, je pense que c'est une ComboBox aurait été plus adaptée à ton cas qu'une Listbox.

Merci pour ta réponse !

mais la longueur de la liste box dépend de ce code non =>

Me.ListBox1.List = Worksheets("liste").Range("A1:A" & Worksheets("liste").Cells(Application.Rows.Count, 1).End(xlUp).Row).Value

Oui nan … jme reveil…

J'ai compris ce que tu voulais dire.

Merci à toi c'est ok

Pouce en l'air !!

Rechercher des sujets similaires à "userform allimentation textbox listbox"