Code VBA à sélectionner en fonction d'une valeur de cellule et d'une plage de dates pour déplacer les données d'une feuille à une autre

1

Je ne parviens pas à obtenir un code VBA que j'ai adapté pour l'exécution de mon programme. Il y a des choses que je ne comprends pas et que je ne sais pas réparer. J'essaie de filtrer les données d'une feuille "Ventes" vers une feuille de synthèse Artisan. Voici le code VBA actuel que j'essaye d'adapter mais que je continue à avoir des erreurs Code:

Sub Filter_Statement()

    On Error GoTo Filter_Statement_Error
    Dim ws As Worksheet
    Set ws = Sheet5

    Application.ScreenUpdating = False
    If ws.Range("D2").Value = "" Or ws.Range("E5").Value = "" Or ws.Range("H5").Value = "" Then
        MsgBox "Please fill in all of the needed information. Customer / Start Date / End Date"
    Exit Sub
    End If
    ws.Select
    ws.Range("ArtisanSummary").RemoveSubtotal
    Set area2 = Sheet4.Range("C2:K100000")

    area2.AdvancedFilter Action:=xlFilterCopy _
        , CriteriaRange:=ws.Range("R4:T5"), CopyToRange:=ws.Range("B10:E10"), _
        Unique:=False
    If ws.Range("B11").Value = "" Then
        MsgBox "No available data"
        Exit Sub
    End If
    Application.ScreenUpdating = True
    Groupit

    On Error GoTo 0
    Exit Sub

    Filter_Statement_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Filter_Statement of Module Filters"
End Sub

Je ne suis pas sûr de ce que je fais mal. Photo de la page de résumé Page that I need data to enter into J'essaie de saisir la date, la quantité, le code et le prix unitaire à partir de la fiche de vente. Je sélectionne par le code artisan en D2 puis les 2 dates en E5 et H5. J'ai essayé d'exécuter le code avec juste le mois, ex février. Mais ça ne marche pas non plus. Je joins également une copie de la page de vente d'où je tire les données. la page de vente est ma 4ème feuille et le résumé d'artisan est la 5ème feuille Sales Sheet J'utilise Excel 2013 pour ce faire.

Jen
la source
Commentez le On Error GoTo Filter_Statement_Error ligne et laissez-nous savoir quelle erreur vous obtenez, et sur quelle ligne.
Kyle
Il pourrait être que vous appelez Groupit, bien que vous puissiez avoir cela mais que vous ne l’ayez pas inclus. Vous avez aussi Set ws = Sheet5où vous auriez pu vouloir dire Set ws = Sheets("Sheet5").
Jonno
2
Vous déclarez "Je continue à avoir des erreurs" . S'il vous plaît poster l'erreur exacte.
CharlieRB
1
"Je me suis adapté pour que mon programme fonctionne. Il y a des choses que je ne comprends pas et que je ne sais pas comment réparer." Quelles sont ces choses? Avez-vous débogué votre code? Quelles sont les lignes qui n'agissent pas comme souhaité?
Máté Juhász
J'ai passé un peu de temps à relire les commentaires. J'ai commenté la ligne 'On Error GoTo Filter_Statement_Error. J'ai supprimé la ligne Group it. Ensuite, j'ai exécuté le code Résultats: Erreur d'exécution '1004': La méthode 'Plage' de Object'_Worksheet 'a échoué. Quand je le corrige la ligne wz.Range ("ArtisanCode"). La suppression du sous-total est mise en surbrillance
Jen