Erreur 1004
Bonsoir à tous du forum,
J'ai un classeur qui me sert à entrer des commandes. J'ai une base de clients, de commandes et autres. J'ai une feuille qui me permet de trier mes commandes par dates et qui m'affichent certains renseignements pré-établis. J'ai fait beaucoup d'améliorations à mon classeur et j'ai oublié de faire les changements à cette feuille. Maintenant, j'obtiens une erreur 1004 si j'essaie de m'en servir. J'ai cherché d'où peut venir l'erreur, mais je n'y suis pas parvenu. J'apprécierais si quelqu'un pourrait me donner un coup de main et des explications afin que je puisse comprendre mon erreur et la corriger dans le futur si besoin est. Je place le code fautif ci-dessous.
Sub ExtraitDate()
Dim Lg%, Crit As Range
''Macros par Claude Dubois pour "klode" Excel-Pratique le 22/07/10
With Sheets("Liste")
Lg = .Range("A65536").End(xlUp).Row
If Range("o2") <> "" Then
Range("s2") = "=Liste!e2>=$m$2"
Set Crit = Range("s1:t2")
Else
Range("s2") = "=Liste!e2>=$m$2"
Set Crit = Range("s1:s2")
End If
.Range("a1:t" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Crit, CopyToRange:=Range("a2:k2"), Unique:=False
End With
'---- tri ---
Range("a2:k" & Range("a65000").End(xlUp).Row).Sort _
Key1:=Range("a3"), Order1:=xlAscending, _
Key2:=Range("A6"), Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
Range("a1").Activate
End SubPour que ce soit plus facile à cerner, je joins la feuille liste, de laquelle les données doivent être extraites ainsi que la feuille booking qui contiendra les données extraites de la feuille liste.
Merci beaucoup pour votre aide,
Claude
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonjour,
l'erreur venait que l'en-tête "Bon de commande" n'existe pas dans la feuille "Liste"
ici j'ai mis "Numero de bon"
et revu un peu le code
Sub ExtraitDate()
Dim Lg%, Crit As Range
''Macros par Claude Dubois pour "klode" Excel-Pratique le 22/07/10
'revu le 10 mai 2011
Application.ScreenUpdating = False
With Sheets("Liste")
Lg = .Range("A65536").End(xlUp).Row
If Range("o2") <> "" Then
Range("s2") = "=Liste!e2>=$m$2"
Set Crit = Range("s1:t2")
Else
Range("s2") = "=Liste!e2>=$m$2"
Set Crit = Range("s1:s2")
End If
.Range("a1:u" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Crit, CopyToRange:=Range("a2:k2"), Unique:=False
End With
'---- tri ---
Range("a2:k" & Range("a65000").End(xlUp).Row).Sort _
Key1:=Range("a2"), Order1:=xlAscending, _
Key2:=Range("b2"), Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
Range("a1").Activate
End SubAmicalement
Claude
Merci Claude d'avoir revu mon classeur. Je vois que j'étais sur la bonne voie, car j'avais déjà apporté quelques corrections dont "=Liste!e2>=$m$2" au lieu de "=Liste!d2>=$m$2". Je cherchais une erreur compliquée, alors que c'était une erreur toute simple.
Encore merci,
Claude