Macro fonctionnant sous 2003 et plus sous 2010

Résolu
tvnbebe Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
 tvnbebe -
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

g_33
 
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
tvnbebe
 
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
g_33
 
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
tvnbebe
 
Je crois qu'à ce moment là de la partie il suffit de dire : "MERCI BEAUCOUP" !
Cela fonctionne à merveille !

Bonne continuation !

BB
0