[VBA] Erreur 1004 AutoFiltre method of Range class failed

Erreur 1004 AutoFiltre method of Range class failed [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 21-07-2009 à 15:39:13    

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

Reply

Marsh Posté le 21-07-2009 à 15:39:13   

Reply

Marsh Posté le 21-07-2009 à 16:15:01    

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 !
Reply

Marsh Posté le 21-07-2009 à 16:31:40    

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

Reply

Marsh Posté le 21-07-2009 à 16:49:57    

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 !
Reply

Marsh Posté le 21-07-2009 à 16:53:29    

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..

Reply

Marsh Posté le 21-07-2009 à 17:57:41    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed