Menus déroulants avec listes dynamiques

Bonsoir

J ai créé un formulaire pour une gestion d'un petit stock et je rencontre 3 difficultés ( pour l'instant )

1) j ai 2 ComboBox mais les listes correspondantes ne sont pas dynamiques

2 ) D autre part, dans les combobox renvoient des données en format texte qui empêchent la fonction RechercheV de fonctionner correctement.

3) je souhaiterais que le bouton "Valider" remettre le formulaire à zéro pour une autre saisie

Merci pour votre aide

Option Explicit

Dim Ws As Worksheet

Private Sub ComboBox1_Change()
' Produits
Dim J As Long
Dim Colonne As Integer

  Me.ComboBox2.Clear
  If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Colonne = Me.ComboBox1.ListIndex + 1
  For J = 2 To Ws.Cells(Rows.Count, Colonne).End(xlUp).Row
    Me.ComboBox2.AddItem Ws.Cells(J, Colonne)
  Next J

End Sub

Private Sub ComboBox2_Change()
' Références
  Me.TextBox1 = ""
  If Me.ComboBox2.ListIndex = -1 Then Exit Sub
  Me.TextBox1 = Me.ComboBox2
End Sub

Private Sub CommandButton1_Click()
' Valider

    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = Me.ComboBox1

    If Me.ComboBox2.ListIndex = -1 Then Exit Sub
    Range("B" & Rows.Count).End(xlUp).Offset(1, 0) = Me.TextBox1

    Range("E" & Rows.Count).End(xlUp).Offset(1, 0) = Me.TextBox2

End Sub

Private Sub CommandButton2_Click()
' Annuler
  Unload Me
End Sub

Private Sub UserForm_Initialize()
Dim I As Integer
    'Charge les données de produits
  Set Ws = Sheets("data")
  With Me.ComboBox1
    For I = 1 To Ws.Range("B2").End(xlToRight).Column
      .AddItem Ws.Cells(1, I)
    Next I
  End With

End Sub

cordialement

Bonsoir,

Et où est le fichier ?

bonjour,

il me semblait pourtant avoir joint le fichier correspondant mais j ai du faire une fausse manip

mes excuses et merci d'avance pour votre aide

Re bonjour,

finalement j ai trouvé la solution pour la liste déroulante dynamique et la remise à zéro à la validation

par contre je n ai toujours pas pu récupérer le format nombre de la textBox1 et 2

les données restent en format text

merci pour votre aide

Bonjour,

TextBox1, c'est une valeur texte ; le problème ne se pose que pour TextBox2.

Tu rajoutes à l'instruction d'affectation : ............= TextBox2 * 1

La multiplication par 1 le rétablit en valeur numérique.

Bonne continuation

Ferrand

Bonjour,

çà marche impeccable

merci bcp pour ta réponse rapide et efficace

Bonne journée

problème nouveau !

A contrario s'il faut renvoyer une valeur texte il bug

merci pour l'aide

A ce que j'ai vu, TextBox2 c'est un nombre de produits sortis !

TextBox1, une référence, donc une chaîne.

Tu ne peux multiplier que si convertible en nombre.

C'est moi qui ne suis pas très clair et çà aide pas !

C'est bien la TextBox1 qui pose problème

car suivant le format de la valeur qui est renvoyée dans mon tableau, la formule RechercheV fonctionne ou pas.

la formule RechercheV pour afficher dans une colonne "Désignation" d'autres données

je ne sais pas si je suis clair

Tu as effectivement une dualité texte/nombre dans tes références.

Si tu ne veux pas homogénéiser vers une type unique de données, il faut essayer une condition :

......= Me.TextBox1 & IIf(IsNumeric(TextBox1), " ", "")

L'ajout d'une espace rétablit la valeur numérique, cela évite la condition classique qui aurait ajouté des lignes de code...

A+

Excellent, j étais loin de cette solution...

Merci encore pour ton éclairage

cordialement

je dois ajouter dans le formulaire la date de saisie

j ai utilisé le DTPicker

Question bête...

Pour renvoyer la date dans mon tableau ( au format date ) , DTPicker est considéré comme une combobox ? ou une textBox ?

Range("F" & Rows.Count).End(xlUp).Offset(1, 0) = .......?

J'ai essayé les 2 çà ne marche pas

Rechercher des sujets similaires à "menus deroulants listes dynamiques"