Remplir tableau avec articles en rupture de stock

Bonjour tous le monde,

Je travaille sur un fichier de suivi des alertes de stock, en se basant sur un tableau (dans le fichier ci-joint) qui contient le code de l'article, le stock final, le stock mini, alerte (=0 s'il ya une rupture) et la quantité à commander.

Mon objectif est de remplir un tableau dans une autre feuille par les articles qui sont en rupture de stock, le tableau va contenir le code, le stock final, le stock mi et la qté à commander.

J'ai essayé avec ce code, il m'affiche une erreur 1004.

Private Sub Workbook_Open()

Dim alertestock As Range

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

If alertestock = 0 Then

Alertes.Cells(alertestock.Row, 1) = Feuil1.Cells(alertestock.Row, 1)
Alertes.Cells(alertestock.Row, 2) = Feuil1.Cells(alertestock.Row, 3)
Alertes.Cells(alertestock.Row, 3) = Feuil1.Cells(alertestock.Row, 4)
Alertes.Cells(alertestock.Row, 4) = Feuil1.Cells(alertestock.Row, 6)

End If

Next alertestock

End Sub

Merci d'avance pour votre aide.

79alerte-stock.xlsm (67.99 Ko)

Bonjour,

J'ai arrivé avec le code ci-dessous à copier une seule ligne, le problème c'est que le code balaye les articles mais n'enregistre que le dernier article en rupture dans le stock.

Sub test()

Dim alertestock As Range

For i = 2 To 10
For Each alertestock In Feuil1.Range("E2:E399")

If alertestock = 0 Then

With Sheets("Feuil1")
    .Range(.Cells(alertestock.Row, 1), .Cells(alertestock.Row, 6)).Copy _
    Sheets("Feuil2").Range("A" & i)

End With

End If

Next alertestock
Next
Worksheets("Feuil2").Activate

End Sub

Bonjour,

Il n'ya pas de plage nommé Alerte, d'où erreur... !

Essaie ainsi:

Sub RecenserAlertes()
    Dim Alt(), n%, i%, j%, k%
    With Worksheets("Feuil1")
        n = .Cells(.Rows.Count, 5).End(xlUp).Row
        For i = 2 To n
            If .Cells(i, 5) = 0 Then
                ReDim Preserve Alt(3, k)
                Alt(0, k) = .Cells(i, 1): Alt(1, k) = .Cells(i, 3)
                Alt(2, k) = .Cells(i, 4): Alt(3, k) = .Cells(i, 6)
                k = k + 1
            End If
        Next i
    End With
    With Worksheets("Alertes")
        .Range("A1").CurrentRegion.Offset(1).ClearContents
        .Range("A2").Resize(k, 4).Value = WorksheetFunction.Transpose(Alt)
        .Activate
    End With
End Sub

Cordialement.

Bonjour,

Merci énormément Ferrand pour ta réponse, ça marche très bien

Cordialement,

MFerrand a écrit :

Essaie ainsi:

Sub RecenserAlertes()
    Dim Alt(), n%, i%, j%, k%
    With Worksheets("Feuil1")
        n = .Cells(.Rows.Count, 5).End(xlUp).Row
        For i = 2 To n
            If .Cells(i, 5) = 0 Then
                ReDim Preserve Alt(3, k)
                Alt(0, k) = .Cells(i, 1): Alt(1, k) = .Cells(i, 3)
                Alt(2, k) = .Cells(i, 4): Alt(3, k) = .Cells(i, 6)
                k = k + 1
            End If
        Next i
    End With
    With Worksheets("Alertes")
        .Range("A1").CurrentRegion.Offset(1).ClearContents
        .Range("A2").Resize(k, 4).Value = WorksheetFunction.Transpose(Alt)
        .Activate
    End With
End Sub

Cordialement.

Rechercher des sujets similaires à "remplir tableau articles rupture stock"