userform avec fonction Vlookup

ezrielle

XLDnaute Occasionnel
bonjour a tous,

Je viens de creer un user form dans lequel j'ai integré un combobox (nom d el'article)

Je souhaiterai qu'en fonction de la selection de l'article dans le combobox j'obtienne automatiquement le stock dispo pr cette article dans un text box.



J'ai essayé avec une recherchev par rapport a ma base de données mais cela ne marche pas.

Voici mon code:

Private Sub SAstockdispo_Change()
Dim article As Variant
Dim stock As Double
Sheets("BaseDonnées").Activate

article = SAarticle.Value

stock = WorksheetFunction.VLookup(article, Range("tableau_BaseDonnees"), 8, False)

'MsgBox "pour l'article " & article & " il reste" & stock & " pièces"

SAstockdispo.Text = stock.Value

End Sub

Merci enormement d'avance pour votre aide

Ez
 

kjin

XLDnaute Barbatruc
Re : userform avec fonction Vlookup

Bonsoir,
Bonsoir paritec
Tu n'as pas mis le code au bon endroit
En outre, comme le proposait paritec, tu peux aussi plus simplement utiliser l'index de la combo
A+
kjin
 

Pièces jointes

  • ezrielle.zip
    18.1 KB · Affichages: 87
  • ezrielle.zip
    18.1 KB · Affichages: 85
  • ezrielle.zip
    18.1 KB · Affichages: 83

ezrielle

XLDnaute Occasionnel
Re : userform avec fonction Vlookup

Re bonsoir,

J'essaye maintenant de supprimer la ligne du tableau que je selectionne à l'aide de mon userform mais mon code doit certainement comporter des erreurs.


Private Sub SAsupprimer_Click()


If SAarticle.ListCount >= 1 Then

If SAarticle.ListIndex = -1 Then
SAarticle.ListIndex = _
SAarticle.ListCount - 1
End If
SAarticle.RemoveItem (SAarticle.ListIndex)
End If


End Sub

Encore merci pour votre aide

Bonne soirée

Ez
 

ezrielle

XLDnaute Occasionnel
Re : userform avec fonction Vlookup

Merci beaucoup

c'est exactement ce que je voulais!

est ce que pour ma compréhesion personnelle tu pourrais m'expliquer le code: (je le comprend dans les grandes lignes mais pas précisément)

Private Sub SAsupprimer_Click()
If SAarticle.ListIndex = -1 Then Exit Sub
With Sheets("BaseDonnées")
.Rows(SAarticle.ListIndex + 2).EntireRow.Delete
End With
EffaceTout
IniSAarticle


End Sub

Private Sub UserForm_Initialize()
IniSAarticle

End Sub

Sub IniSAarticle()
With Sheets("BaseDonnées")
SAarticle.List = .Range("C2:C" & .Range("C65000").End(xlUp).Row).Value
End With


End Sub

Sub EffaceTout()
Dim ctl As Control
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Then ctl = ""
If TypeName(ctl) = "ComboBox" Then ctl = ""
Next

End Sub


Merci beaucoup

C'est parfait

Ez
 

Discussions similaires

Statistiques des forums

Discussions
312 238
Messages
2 086 491
Membres
103 234
dernier inscrit
matteo75654548