IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

autofilter error type 448


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 25
    Points : 13
    Points
    13
    Par défaut autofilter error type 448
    Bonjour chers developpeurs VBA,

    J'essaie de developper des macros qui me permettront de filtrer mes données (un sheet) et les enregistrer dans 6 différents fichiers en basant sur mes filtres.

    Mais, je rencontre avec un error. Pourriez-vous, s'il vous plait, m'aider à debugger cet error et suggérer d'autres solutions pour améliorer mes codes. Ps: je suis débutante en VBA et c'est pas toujours évident

    Le worksheet sur lequel je travaille contient 3 sheets:
    data-les données sur lequels je fait mon tri
    criteria-les critère de filtre sont enregistré
    fram-sheet dans lequel je souhaite mettre mes données filtrés


    du coup, quand j'execute le macro, une erreur type 448 "argument nommé introuvable" s'affiche sur la partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Sheets("data").AutoFilter Field:=12, Criteria1:="=fram1", _
               Operator:=xlOr, Criteria2:="=fram2"
    Voici les codes que j'ai écrit:

    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
    39
    40
    41
    Option Explicit
     
    Sub filter()
     
    'Clear previous data that might me be on local_data
        Sheets("fram").Select
        Range(Range("A1"), Range("EU6000")).ClearContents
     
    'Set the criteria of filter
     
    Dim fram1 As Range
    Set fram1 = Sheets("criteria").Range("B2")
     
     
    Dim fram2 As Range
    Set fram2 = Sheets("criteria").Range("B3")
     
    'filter throught this criteria
     
     
        Sheets("data").AutoFilter Field:=12, Criteria1:="=fram1", _
               Operator:=xlOr, Criteria2:="=fram2"
     
     
    'copy the filtered data into corresponding worksheet
     
     Sheets("data").Select
        Selection.Cut
     
     
    'Paste the right data in the right tab
        Sheets("Fram").Select
        Range("A1").Select
        ActiveSheet.Paste
        Range("A1").Select
     
        Cells.Select
        'ActiveSheet.Paste
        Selection.AutoFilter
     
    End Sub

    Je vous remercie beaucoup par avance pour votre aide qui sera très précieux pour moi

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Autofilter tel s'applique à une plage et non à une feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Fram1 As Range, Fram2 As Range
     
    With Worksheets("criteria")
        Set Fram1 = .Range("B2")
        Set Fram2 = .Range("B3")
    End With
     
    Worksheets("data").Range("L:L").AutoFilter Field:=1, Criteria1:=Fram1.Value, Operator:=xlOr, Criteria2:=Fram2.Value
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Mercii
    Merci beaucoup pour votre réponse Mercatog

    Mais ça marche toujours pas

    Ce que je dois faire, c'est filtrer mes datas(A-EW, biensur la ligne 1 est pour les titres) par le column L qui contient le nom du department. Je sais pas s'il faut utiliser autofilter ou bien advanced filter. apres je dois copier mes données filtrées dans une autre sheet. je dois répeter pour 6 departements.

    J'arrive pas à trouver où est l'erreur dans le syntaxe.....

    Merci encore par avance pour votre aide

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    en effet, les codes que vous m'aviez donné marche, je l'ai testé sur un autre fichier le beug vient d'ailleurs je pense.

    En effet, je me demandais si c'était une bonne idée d'utiliser l'autofilter car ce dont j'ai besoin est séparer des mes données par la valeur d'un column et les stocker dans différents workbooks dedié pour chaque département afin de les envoyer.

    auriez-vous d'autres suggestions de synthèse comme if value= , copy,paste?

    En vous remerciant.

    Bien cordialement,

  5. #5
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    1. Si tu as une liste de départements, tu peux toujours la parcourir et filtrer ta base en conséquence. Tu copie dès lors les lignes visibles dans une nouvelle feuille ou nouveau classeur.
    2. Sinon, tu peux aussi créer, à partir de ta base, la liste sans doublons des département et ensuite tu fais le 1.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

Discussions similaires

  1. Microsoft VBScript runtime error Type mismatch
    Par Fiona08 dans le forum VBScript
    Réponses: 7
    Dernier message: 19/09/2011, 21h46
  2. Réponses: 1
    Dernier message: 05/05/2009, 09h11
  3. Réponses: 0
    Dernier message: 04/05/2009, 11h35
  4. [VBA-E] - run-time error "Type mismatch"
    Par Chewi dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/02/2007, 18h44
  5. Réponses: 4
    Dernier message: 17/10/2006, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo