Supprimer message : Microsoft Excel a trouvé une ligne de données

Bonjour à tous,

Je rencontre un message d'erreur avec mon filtre/macro de tri. Lorsque je lance ma macro une fenêtre m'indique : Microsoft Excel a trouvé une ligne de données au-dessus du tableau ou base de données. Si cette ligne contient des étiquettes de colonne, incluez les dans votre sélection afin que la commande Filtre fonctionne correctement. Voulez-vous inclure cette ligne dans la sélection?

Quand je clique sur oui, tout se lance correctement. Mais j'aimerais supprimer l'ouverture de cette fenêtre.

Voici mon code :

Sub UPDATE()
    Dim ws As Worksheet
    Set ws = ActiveWorkbook.Worksheets("SUIVI DE FABRICATION")

    ' Supprimer les sous-totaux existants
    ws.Cells.RemoveSubtotal

    ' Effacer les champs de tri existants
    ws.Sort.SortFields.Clear

    ' Ajouter les critères de tri
    With ws.Sort.SortFields
        .Add Key:=ws.Range("A4:A300"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Add Key:=ws.Range("J4:J300"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Add Key:=ws.Range("D4:D300"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    End With

    ' Appliquer le tri
    With ws.Sort
        .SetRange ws.Range("A4:AJ300")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    ' Ajouter les sous-totaux
    ws.Range("A4:AJ300").Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(12), _
        Replace:=True, PageBreaks:=False, SummaryBelowData:=True

    ' Recentrer la vue
    ActiveWindow.SmallScroll Down:=-12
End Sub

Pour information : Mes ligne 1 à 3 font partis de mes entêtes.

Avez-vous une idée de comment supprimer ce message ?

Bonsoir,

ces trois lignes d'entêtes sont-elles fusionnées afin de faire une présentation "jolie" ?
Si oui défusionnez-les afin de n'avoir qu'une ligne d'entête pour le données puis au dessus avec les deux lignes restantes créez votre jolie présentation.

@ bientôt

LouReeD

Merci pour ta réponse,

Alors oui j'avais quelques fusions, mais cela ne change rien en les supprimant

Ci-joint le fichier pour plus de facilité. Pour lancer la macro ce sont les deux flèches en haut a gauche.

14test.zip (410.42 Ko)

bonjour Roden, LouReeD,

et si vous ignorez les entêtes ...

Sub UPDATE()
     Dim ws    As Worksheet, i

     Set ws = ActiveWorkbook.Worksheets("SUIVI DE FABRICATION")

     With ws.Range("A3:AJ400")
          .RemoveSubtotal                    ' Supprimer les sous-totaux existants
          .AutoFilter                        'désactiver autofilter
          With .Offset(1).Resize(.Rows.Count - 1)     'trier sans entête
               .Sort .Range("A1"), xlAscending, , .Range("J1"), xlAscending, .Range("D1"), xlAscending, Header:=xlNo
          End With

          .Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(12), Replace:=True, PageBreaks:=False, SummaryBelowData:=True     ' Ajouter les sous-totaux

          i = .Range("A1").End(xlDown).Row - .Row + 1     'numéro de la ligne dans cette plage
          If i > 10 Then Application.Goto .Cells(i - 10, 1), 1: Application.Goto .Cells(i + 1, 1)     'se positionner au bout de vos données

     End With

End Sub

Bonjour,
Une autre proposition corrigée et fonctionnelle ?
Cdlt.

Sub UPDATE()
    Dim ws As Worksheet
    Set ws = ActiveWorkbook.Worksheets("SUIVI DE FABRICATION")

    ' Supprimer les sous-totaux existants
    ws.Cells.RemoveSubtotal

    ' Effacer les champs de tri existants
    ws.Sort.SortFields.Clear

    ' Ajouter les critères de tri
    With ws.Sort.SortFields
        .Add Key:=ws.Range("A3:A300"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Add Key:=ws.Range("J3:J300"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Add Key:=ws.Range("D3:D300"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    End With

    ' Appliquer le tri
    With ws.Sort
        .SetRange ws.Range("A3:AJ300")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    ' Ajouter les sous-totaux
    ws.Range("A3:AJ300").Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(12), _
        Replace:=True, PageBreaks:=False, SummaryBelowData:=True

    ' Recentrer la vue
    ActiveWindow.SmallScroll Down:=-12
End Sub

Ça fonctionne parfaitement, merci à vous!

Bonjour,

Rechercher des sujets similaires à "supprimer message microsoft trouve ligne donnees"