Macro fonctionnant sous 2003 et plus sous 2010

Résolu/Fermé
tvnbebe Messages postés 3 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 13 novembre 2014 - 21 août 2013 à 16:43
 tvnbebe - 26 août 2013 à 15:46
Bonjour,


j'ai une macro sous Excel , qui fonctionne parfaitement bien sous Excel 2003 et qui bugge avec Excel 2010 !
L'erreur est la suivante :
erreur 1004, 'la méthode autofilter de la classe Range a échoué'

En se rendant dans débogage , la ligne jaunie est :
Selection.AutoFilter Field:=11, Criteria1:="OA (ordre d'achat)"

Voici le paragraphe complet !

'Copie du FP précédent dans l'onglet data

Workbooks(wb_relance).Activate
Selection.AutoFilter Field:=11, Criteria1:="OA (ordre d'achat)"
Cells.Select
Selection.Copy
Workbooks("b2win.xls").Activate
Sheets("data").Select
Range("A1").Select
ActiveSheet.Paste

Je remercie d'avance toute personne pouvant m'aider !

BB
A voir également:

2 réponses

Bonjour
Quand tu dis

Workbooks(wb_relance).Activate
Selection.AutoFilter Field:=11, Criteria1:="OA (ordre d'achat)"

tu selectionnes un Classeur et pas une feuille ni la colonne donc impossible de filtrer

cordialement
0
Je ne suis pas un champion en prog . :(

Tout ce que je sais c'est que cette macro fonctionne sous Excel 2003 mais pas sous 2010 !

D'après ce que j'ai compris , la ligne "Workbooks(wb_relance).Activate " active un fichier(classeur) contenu dans la variable wb_relance !

Ensuite on essaie de faire une sélection afin de copier le contenu dans un nouveau fichier mais mes maigres connaissances ne me permettent pas de comprendre dans sa totalité la seconde ligne et notamment la fonction "Selection.AutoFilter " et Field:=11 !

Donc à priori je dirai Oui on sélectionne un classeur mais pourquoi cela ne fonctionne t'il plus sous Excel 2010 ?

Merci !

BB
0
Essaie comme ça

Workbooks(wb_relance).Activate
Sheets("nom de ta feuille").Activate
Range("k1").Select
Selection.AutoFilter Field:=11, Criteria1:="OA (ordre d'achat)"
Cells.Select
Selection.Copy
Workbooks("b2win.xls").Activate
Sheets("data").Select
Range("A1").Select
ActiveSheet.Paste
0
Je crois qu'à ce moment là de la partie il suffit de dire : "MERCI BEAUCOUP" !
Cela fonctionne à merveille !

Bonne continuation !

BB
0