Alerte de stock avec VBA

Bonjour tous le monde,

Je travaille actuellement sur un fichier de suivi de stock, mon tableau contient le code de l'article, le stock initial, le stock final et le stock min.

Une fois le stock final est égale au stock min, la valeur de la colonne alerte est : 1, une commande doit bientôt être commandée, et une fois le stock est inférieur au stock min --> la valeur est : 0, une commande doit être lancée.

Mon objectif est de générer 2 MsgBox contenant la liste des produits dont la valeur d'alerte est égale à 0, et un autre dont la valeur est égale à 1.

J'ai essayé avec ce code, mais j'ai des problèmes avec la condition sur la boucle:

Private Sub Workbook_Open()

 Worksheets("Feuil1").Activate

'Pour les stocks
Dim alertestock As Range

Dim tableau(0 To 20)

For Each alertestock In Feuil1.Range("Alerte")

  If alertestock = "0" Then

        For i = 0 To 20

        tableau(i) = Range("B" & i + 3)

        Next i

        Texte = "Ces objects doivent etre commandés: " & vbCrLf

        For i = 0 To 20

        Texte = Texte & tableau(i) & vbCrLf

    Next i
     End If

      If alertestock = "1" Then

        For i = 0 To 20

        tableau(i) = Range("B" & i + 3)

        Next

        Texte2 = "Ces objects doivent bientot etre commandés: " & vbCrLf

        For i = 0 To 20

        Texte2 = Texte2 & tableau(i) & vbCrLf

    Next i
     End If

Next
MsgBox Texte, vbCritical

MsgBox Texte2, vbExclamation

End Sub

Merci d'avance pour votre aide.

60alerte-stock.xlsm (49.25 Ko)

Bonjour et bienvenue sur le forum

Essaie ça :

Private Sub Workbook_Open()
    Dim alertestock As Range
    Dim i&, texte$, texte2
    texte = "": texte2 = ""
    For Each alertestock In Feuil1.Range("Alerte")
        If alertestock = 0 Then
            texte = texte & alertestock.Offset(0, -4) & vbCrLf
        ElseIf alertestock = 1 Then
            texte2 = texte2 & alertestock.Offset(0, -4) & vbCrLf
        End If
    Next alertestock
    MsgBox "Ces objects doivent etre commandés: " & vbCrLf & texte, vbCritical
    MsgBox "Ces objects doivent bientot etre commandés: " & vbCrLf & texte2, vbExclamation
End Sub

Bye !

Merci Beaucoup Gmd, pour la réponse,

J'ai encore un petit problème concernant la boucle, le code parcourt les articles avec alerte mais n'enregistre que le dernier élément et l'affiche dans MsgBox, j'ai besoin d'afficher tous les élément dans le meme MsgBox.

Merci encore pour votre aide


Bonjour Gmd,

Votre code a bien marché, c'étais seulement une erreur de syntax.

Merci Beaucoup

Mon essai :

Bye !

215alerte-stock-v1.xlsm (33.64 Ko)
gmb a écrit :

Mon essai :

Bye !

Merci Gmd, le code marche bien

Rechercher des sujets similaires à "alerte stock vba"