Erreur 1004 AutoFiltre method of Range class failed [VBA] - VB/VBA/VBS - Programmation
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
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
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
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..
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