Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LibArt As String, LigArt As Long, QtStock As Single, VStock As Single
' Si la colonne de saisie est F ou G
If Left(Target.Address(0, 0), 1) = "F" Or Left(Target.Address(0, 0), 1) = "G" Then
' Empècher les évènements de se reproduire lors de la modification
Application.EnableEvents = False
' Récupérer le libellé de l'article de la ligne saisie
LibArt = Range("D" & Target.Row)
' Récupérer le numéro de la ligne en effectuant un recherche
LigArt = LigFind(LibArt)
' Si la ligne à été trouvée = différend de ZERO
If LigArt <> 0 Then
' Récupérer la quantité en stock de l'article
QtStock = Range("L" & LigArt)
' Affiche le TextBox
Me.TextBox1.Visible = True
' Le positionner aun bon endroit par rapport à la hauteur
Me.TextBox1.Top = Target.Top
' Inscrire le texte qui va bien, avec la quantité de la ligne
Me.TextBox1.Text = "Quantité en stock : " & QtStock
' Selon
If LibArt = "A4 - 80g - Papier blanc" And QtStock <= 100000 Then
Me.TextBox1.ForeColor = CLng(&HFF&) ' "&H000000FF&"
ElseIf LibArt = "A4 - 80g - Papier blanc" Then
Me.TextBox1.ForeColor = CLng(&HC000&) '"&H0000C000&"
ElseIf QtStock <= 5000 Then
Me.TextBox1.ForeColor = CLng(&HFF&) ' "&H000000FF&"
Else
Me.TextBox1.ForeColor = CLng(&HC000&) '"&H0000C000&"
End If
End If
Application.EnableEvents = True
End If
End Sub
Function LigFind(Quoi)
LigFind = 0
On Error Resume Next
' Avec la feuille active
With ActiveSheet
' Rechercher dans la colonne M, le type de papier entré ou sorti
LigFind = Range("M:M").Find(What:=Quoi, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False).Row
End With
On Error GoTo 0
End Function
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Pour tout changement de cellule
' si la colonne est différente de F ou G
If Left(Target.Address(0, 0), 1) <> "F" And Left(Target.Address(0, 0), 1) <> "G" Then
' On efface le texte
Me.TextBox1.Text = ""
' et on masque le TxtBox
Me.TextBox1.Visible = False
End If
End Sub