Erreurs d"execution 1004 programme simple

Résolu
scuti Messages postés 31 Statut Membre -  
scuti Messages postés 31 Statut Membre -
Bonjour,
Je débute sur VBA, je ne comprend pas pourquoi ce code ne fonctionne pas.

Sub Filtrer()
'
' Filtrer Macro
'
' Touche de raccourci du clavier: Ctrl+x
'
Worksheets(3).Activate
Sheets("paramètres").Select
Selection.AutoFilter Field:=13, Criteria1:=Range("M2")
Sheets("Feuille accueil").Select

End Sub


La ligne
Selection.AutoFilter Field:=13, Criteria1:=Range("M2")
est celle remise en cause

Ce programme fonctionne sur un onglet appelé productionparameters mais pas sur l'onglet paramètres

merci d'avance pour votre aide

7 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Que ce soit Jordane45 (Bonjour) ou moi; on t'avait proposé des réponses à ces discussions
    https://forums.commentcamarche.net/forum/affich-34693700-erreur-d-execution-6-depassement-de-capacite
    https://forums.commentcamarche.net/forum/affich-34694017-fusionner-deux-code-simple

    discussions marquées "Résolu"
    On attend encore à ce jour ton
    MERCI!

    Tu connais ?
    lire d'urgence
    https://www.commentcamarche.net/infos/25855-charte-d-utilisation-de-commentcamarche-net-respect-d-autrui/#politesse

     Michel
    0
    1. scuti Messages postés 31 Statut Membre
       
      Tu as raison, excuse moi j'avais oublié, normalement je le dit ^^'
      0
    2. scuti Messages postés 31 Statut Membre
       
      Ceci étant résolu as-tu une idée d'une solution pour mon problème ?
      0
  2. scuti Messages postés 31 Statut Membre
     
    Il s'agit de excel 2016
    0
    1. gérard
       
       
      Bonjour scuti,

      Je pense que c'est indépendant de ta version d'Excel, mais tu as quand
      même bien fait de préciser (au cas où).

      Tu as écris que ça fonctionne bien sur ton onglet productionparameters ;
      et c'est sûrement ta 3ème feuille puisqu'il y a : Worksheets(3).Activate

      Ainsi, ton tableau avec filtre activé est sur ta 3ème feuille et pas sur
      ton onglet "paramètres" : on pourrait penser que c'est pour ça que
      ça plante ; mais non puisque de toute façon, même si tu lances ta
      macro depuis ton onglet "paramètres", c'est quand même ta 3ème
      feuille qui sera activée dès l'entrée de ta macro.

      À tout hasard, essaye en remplaçant Worksheets(3).Activate par
      Worksheets(3).Select ; sinon, je n'ai pas d'autre idée.

      Si ton problème est réglé, merci de passer le sujet en résolu.

      Cordialement
       
      0
    2. scuti Messages postés 31 Statut Membre > gérard
       
      Bonjour Gérard, malheureusement ce n'est pas ça, j'avais modifié ce paramètre, l'onglet productionparameters est le 2ème sur ma feuille.

      Et c'est bien la ligne :
      Selection.AutoFilter Field:=13, Criteria1:=Range("M2")
      qui semble poser problème
      0
    3. gérard > scuti Messages postés 31 Statut Membre
       
      Oui, mais ton tableau avec filtre est sur quelle feuille ?
      S'il est sur ta 2ème feuille : Worksheets(2).Activate
      0
    4. scuti Messages postés 31 Statut Membre > gérard
       
      Il est sur la troisieme
      0
    5. gérard > scuti Messages postés 31 Statut Membre
       
       
      Dans ce cas, ton Worksheets(3).Activate est bon ; mais à tout hasard, essaye
      quand même en le remplaçant par : Worksheets(3).Select ; ou encore par :
      Worksheets("productionparameters").Select

      Si la feuille est bonne, alors vérifie que sur cette feuille, ton tableau avec filtre
      activé a bien un champ n° 13.

      ⚠  Si la 1ère colonne du tableau est en colonne D : le champ n° 1 correspond
      à cette colonne D ; ta colonne E est le champ n° 2 ; ... et c'est ta colonne P
      qui est ton champ n° 13.

      Si le champ n° 13 est bon, il reste à vérifier ton critère, en cellule M2.
       
      0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Tr,
    mets plutôt ton classeur en PJ
    Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
    et faire un clic gauche :coller le raccourci dans votre message

    Dans l’attente

    0
  4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonsoir, suggestion:
    Sheets("paramètres").Cells.AutoFilter Field:=13, Criteria1:=Sheets("paramètres").Range("M2")

    de préférence, en supprimant les .Activate et les .Select
    0
    1. gérard
       
       
      Bonjour yg_be,

      Tu as raison : c'est mieux sans les .Activate et sans les .Select ; et ça devrait passer
      sûrement mieux si le critère est lui aussi préfixé par la bonne feuille !

      Même si je l'avance un peu vite, il me semble que tu as trouvé la bonne solution,
      et que scuti pourra bientôt le confirmer.

      Cordialement
       
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. scuti Messages postés 31 Statut Membre
     
    Bonjour, merci pour votre aide

    Voila une partie du fichier qui fait originellement 40 colonnes sur 365 000 lignes.

    La macro 3 est celle qui nous intéresse.

    Le fichier s'appelle autre.

    Quand j'utilise le code de yg_be sur la feuille Productionparameters cela fonctionne mais quand je l'utilise sur la feuille paramètres il n'y a plus de message d'erreur mais le filtre ne laisse plus rien passer.

    https://mon-partage.fr/f/dZFuwVe6/
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je ne vois pas le code proposé dans le fichier.
      0
    2. scuti Messages postés 31 Statut Membre
       
      Mince, peut tu créer un code correspondant et faire un essai quand même il ne doit comporter que ta ligne.
      Ou je peut peut-être le rajouter mais je ne sais pas comment.
      0
  7. scuti Messages postés 31 Statut Membre
     
    Et bien, Merci beaucoup à tout le monde pour le temps passé et continuez ce que vous faites c'est génial.
    0
  8. scuti Messages postés 31 Statut Membre
     
    Excusez moi;

    Le code marche mais quand j'ai voulus le réutiliser il ne fonctionne plus voici les deux codes celui ci fonctionne:

    Sub Filtrer2()
    '
    ' Filtrer2 Macro
    '
    ' Touche de raccourci du clavier: Ctrl+w
    '
    Sheets("paramètres").Cells.AutoFilter Field:=1, Criteria1:=Sheets("paramètres").Range("J2")

    End Sub


    Mais pas celui la :

    Sub Filtrer()
    '
    ' Filtrer Macro
    '
    ' Touche de raccourci du clavier: Ctrl+x
    '
    Sheets("paramètres").Cells.AutoFilter Field:=4, Criteria1:=Sheets("paramètres").Range("M2")

    End Sub


    Avez vous une idée ?
    0
    1. gérard
       
       
      a) Un truc tout bête : es-tu sûr que ton raccourci Ctrl+x lance ta macro Filtrer ?
          surtout que Ctrl+x est utilisé en général pour l'opération Couper !

      b) Si ce n'est pas a) : la syntaxe de ta ligne de code est identique dans les
          deux cas ; donc vérifier n° de champ et cellule du critère : 4 et "M2"
       
      0
    2. scuti Messages postés 31 Statut Membre
       
      Ce n'est pas la a)

      J'ai essayer toutes les combinaisons possible et la macro affiche le message d'erreur 1004 pour toute les combinaisons n'ayant pas field=1

      Quand il est égal à un cela fonctionne avec la valeur indiquée que cela soit M2 ou J2
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > scuti Messages postés 31 Statut Membre
         
        tu as probablement modifié tes données, et ton tableau ne fait plus qu'une seule colonne. quel est le message de l'erreur 1004?
        0
    3. scuti Messages postés 31 Statut Membre
       
      Euh j'ai redémarrer mon PC et ça s'est mis à fonctionner, Désolé de t'avoir déranger de nouveau

      Merci pour ton aide
      0