Affichage dans textbox suivant 1 ou 2 critères

bonjour,

dans un petit programme de suivi de stock

j ai rajouté un formulaire de "Consultation du stock" avec une combobox qui donne les produits et une autre les références des pièces

ces informations se trouvent dans une autre feuille du classeur "liste des pièces en stock"

Sur ce formulaire de "consultation" j ai ajouté une textbox qui doit afficher le stock de la pièces en question. ( cette information se trouvant dans la "liste des pièces en stock")

y a t il un code VBA à rajouter ou s'agit il plutôt d'une formule Excel à créer

merci d'avance pour vos bons conseils

Private Sub UserForm_Initialize()
    TextBox1.Text = CStr(Date)

 List
End Sub

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

End Sub 

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

  If Me.ComboBox2.ListIndex = -1 Then Exit Sub

End Sub

Private Sub CommandButton2_Click()
'Quitter
Unload Me

End Sub
28stock-test.xlsm (155.86 Ko)

Bonjour,

Proposition à tester

Private Sub ComboBox2_Change()
' Références
Dim derLign As Integer, cel As Range
Application.ScreenUpdating = False
  If Me.ComboBox2.ListIndex = -1 Then Exit Sub
  Sheets("Etat_du_Stock").Activate
  derLign = Range("B" & Rows.Count).End(xlUp).Row
  For Each cel In Range("B2:B" & derLign)

    If CStr(cel) = Me.ComboBox2 Then Me.TextBox2 = cel.Offset(0, 6)

  Next cel
Application.ScreenUpdating = True
End Sub

bonjour à vous deux

Une autre proposition.

Je te conseille d'utiliser un label au lieu d'une textbox.

Vois et dis nous.

Cordialement

ddetp88

Bonjour à tous les deux et merci pour vos propositions qui fonctionnent .. en partie

comment pourrais rajouter le critère "Produits" de la colonne A

Car en vérifiant je peux avoir des références identiques mais pour des produits différents

j ai tenté de rajouter la condition avec "AND" mais çà n a pas fonctionné

merci d'avance

Re,

Essayez comme ça

Private Sub ComboBox2_Change()
' Références
Dim derLign As Integer, cel As Range, Critère As String
Application.ScreenUpdating = False
  If Me.ComboBox2.ListIndex = -1 Then Exit Sub
  Sheets("Etat_du_Stock").Activate
  derLign = Range("B" & Rows.Count).End(xlUp).Row
  For Each cel In Range("B2:B" & derLign)
    Critère = cel.Offset(0, -1) & cel
    If Critère = cel.Offset(0, -1) & Me.ComboBox2 Then Me.TextBox2 = cel.Offset(0, 6)

  Next cel
Application.ScreenUpdating = True
End Sub

j avais testé cette solution mais non le problème est toujours présent

si vous ouvrez le fichier il y a un exemple :

si dans la combobox1 vous sélectionnez "Disque AR" et dans la combobox "DIV8.5" le résultat sera 43 au lieu de 33

Car à la ligne 38 du tableau il existe un autre "Produit" : " KIT SUPER PRO" qui présente la même référence et un stock de 43

Re,

Ou peut-être comme ça

Private Sub ComboBox2_Change()
' Références
Dim derLign As Integer, cel As Range, Critère As String
Application.ScreenUpdating = False
  If Me.ComboBox2.ListIndex = -1 Then Exit Sub
  Sheets("Etat_du_Stock").Activate
  derLign = Range("B" & Rows.Count).End(xlUp).Row
  For Each cel In Range("B2:B" & derLign)
    Critère = Me.ComboBox1 & Me.ComboBox2
    If Critère = cel.Offset(0, -1) & cel Then Me.TextBox2 = cel.Offset(0, 6)

  Next cel
Application.ScreenUpdating = True
End Sub

Bravo RJ !

cà marche !

J'étais parti dans un truc super compliqué mais la c'est plus simple et sutout efficace

merci beaucoup pour t'être penché sur mon problème

Bon app et bon dimanche

Rechercher des sujets similaires à "affichage textbox suivant criteres"