Bonjour,
J'ai un tableau de données d'un robot de traite, à chaque passage au robot, une ligne se créée.
Je voudrais une macro qui trie ces données en fonction du numéro de la vache et de la date de traite.
Seulement les lignes où dans la colonne action la vache est marquée "refusée" ou "relachée non traite" gênent à la synthèse des données, je souhaiterais donc qu'en plus du trie, la macro supprime toutes les lignes lorsqu'il y a refusée ou relachée non traite.
Le tableau devant être actualisé au fur et à mesure des traites, il ne peut y avoir de frontière vers le bas.
Ma macro ne marchant je souhaiterais comprendre les erreurs, merci
Je joins le fichier excel

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub Filtre()
'
' Filtre Macro
'
 
'
    ActiveWorkbook.Worksheets("donnees_robots_lot1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("donnees_robots_lot1").Sort.SortFields.Add Key:= _
        Range("A6:A5051"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortTextAsNumbers
    ActiveWorkbook.Worksheets("donnees_robots_lot1").Sort.SortFields.Add Key:= _
        Range("B6:B5051"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("donnees_robots_lot1").Sort
        .SetRange Range("A5:AK5051")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
 
Sub Supprime()
Dim i As Long
Dim e As Long
Dim A As String
    Sheets("donnees_robots_lot1").Select
    For i = 1 To Range("A6").End(xlUp).Row
        If UCase(Cells(i, 1).Value) = "Refusée" Then Exit For
    Next i
    For e = i + 1 To Range("A6").End(xlUp).Row
        If UCase(Cells(e, 1).Value) = "Relachée non traite" Then Exit For
    Next e
    A = CStr(i + 1) & ":" & CStr(e - 1)
    Rows(A).Select
    Selection.Delete Shift:=xlUp
    Range("A" & i).Select
    End With
End Sub
Merci pour votre aide