Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2831 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Erreur 1004 AutoFiltre method of Range class failed

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Erreur 1004 AutoFiltre method of Range class failed

n°1907289
replay
Posté le 21-07-2009 à 15:39:13  profilanswer
 

bonjour à tous,
 
 
en enregistrant une macro avec l'outil d'excel, j'ai un code pondu automatiquement, mais lorsque je lance la macro, il s'arrête et donne l'erreur suivant sur une partie ou je veux effectuer la suppression de plusieurs lignes.
Des lignes que je filtre au préalable par date avant le 1er juin et apres le 30 juin (en gros tout ce qui n'est pas de juin 2009).
 
voici la ligne sur laquelle il s'arrete:
 
Selection.AutoFilter Field:=10, Criteria1:="<01-Jun-2009", Operator:=xlOr, Criteria2:=">30-Jun-2009"
 
l'erreur:
 
Run-time error '1004':
AutoFilter method of Range class failed
 
une idée si c'est la syntaxe qui est mauvaise ou pas ?
merci

mood
Publicité
Posté le 21-07-2009 à 15:39:13  profilanswer
 

n°1907299
SuppotDeSa​Tante
Aka dje69r
Posté le 21-07-2009 à 16:15:01  profilanswer
 

Bonjour
 
Tu as des formats de dates. Les filtres merdent un peu avec ce genre de chose. En effet, les filtres fonctionnent par ordre alphabetique.
Or, le 01-mars-2009 vient après le 01-juillet-2009 par ordre alpha, il est donc un peu perdu.
 
Si tu veux filtrer des dates il faut les laisser en dd/mm/yyyy
Et meme comme ca, tu vas galerer pour appliquer le filtre.
 
En effet, il faudra passer par une "bidouille". Les formats dd/mm/yyyy sont des nombres pour excel.
Aujourd'hui c'est le 40015
Donc la il peut trier par ordre alpha.
 
Le souci, c'est qu'en vba pour passer les critere il faut le faire en anglais, donc pour le 01/06/2009 il faut marquer :
Selection.AutoFilter Field:=1, Criteria1:=">=06/01/2009"
 
Tu peux aussi passer un format
Selection.AutoFilter Field:=1, Criteria1:=">=" & Format(CDate("01/06/2009" ),"mm/dd/yyyy)
 
Cordialement


Message édité par SuppotDeSaTante le 21-07-2009 à 16:30:09

---------------
Soyez malin, louez entre voisins !
n°1907311
replay
Posté le 21-07-2009 à 16:31:40  profilanswer
 

merci ça fonctionne !
 
par contre du coup il est passé à une autre erreur sur une autre ligne
 
Run-time error '1004':  
AutoFilter method of Range class failed
 
sur:
 
Selection.Delete Shift:=xlUp

n°1907320
SuppotDeSa​Tante
Aka dje69r
Posté le 21-07-2009 à 16:49:57  profilanswer
 

Tu ne dois plus avoir de ligne valide à supprimer, plus tu les supprimes moins tu en as...
 
Si tu es sur de ton code, mets en debut de procedure :
On Error Resume Next


Message édité par SuppotDeSaTante le 21-07-2009 à 16:50:35

---------------
Soyez malin, louez entre voisins !
n°1907322
replay
Posté le 21-07-2009 à 16:53:29  profilanswer
 

je te remercie
 
ce n'est pas mon code en fait c'est surtout le code généré automatiquement lors de l'enregistrement de la macro
 
je fais ça par facilité, histoire de pas passer la journée à coder..

n°1907366
SuppotDeSa​Tante
Aka dje69r
Posté le 21-07-2009 à 17:57:41  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Erreur 1004 AutoFiltre method of Range class failed

 

Sujets relatifs
[VBA][Résolu] Completer une feuille type[VBA] Adapter un menu déroulant à la saisie
Calendrier avec VBA pour Access[VBA] Comment récupérer la taille d'un classeur ouvert
Erreur 1004: Méthode Open de l'objet workbook échouéemessage d'erreur "can not access a member of class X"
[VBA Excel 2007] erreur Nombre d'arguments incorrects [RESOLU] 
Plus de sujets relatifs à : [VBA] Erreur 1004 AutoFiltre method of Range class failed


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR