scampy
Messages postés12Date d'inscriptiondimanche 6 août 2006StatutMembreDernière intervention28 juillet 2013
-
6 déc. 2011 à 16:45
scampy
Messages postés12Date d'inscriptiondimanche 6 août 2006StatutMembreDernière intervention28 juillet 2013
-
6 déc. 2011 à 18:19
Bonjour,
J'ai fait une petite macro VBA sous excel 2007 depuis mon PC qui permet de trier automatiquement une colonne et je voudrais pouvoir l'ouvrir sous excel 2003 qui est à mon bureau
Mais voilà j'obtiens le message :
erreur d'execution '438'
propriété ou méthode non gérée par cet objet
Pourriez-vous m'aider ?
Merci
Voici le code qui marche sous excel 2007 :
Private Sub Worksheet_Change(ByVal Target As Range)
Columns("A:A").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A2:A1000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 6 déc. 2011 à 17:32
Un autre "truc" tout bête, si vraiment nécessaire :
depuis ta machine Excel 2003 utilise l'enregistreur de macros ==>> fais ton tri ===>> regarde
Débarrasse ce code de son superflu (les select, etc...) de l'enregistreur.
Teste en lançant la macro. Elle marche ? ===>> bien ===>> tu mets ce code à la place du tien dans ton classeur Excel 2007. Il y fonctionnera aussi (et tu auras ainsi le même code chez toi et au bureau).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 6 déc. 2011 à 16:49
Bonjour,
(et sans préjudice de la qualité du code) :
Je ne vois rien, dans ton code, qui ne serait parfaitement interprété par Excel 2003
Il te faut par contre, si tu veux ouvrir ton classeur 2007 sous 2003, en faire, depuis 2007, un enregistrement "dégradé" ===>>
Enregistrer sous ===>> type de fichiers ===>> versions 97 - 2003
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 6 déc. 2011 à 16:58
Ah non ! Excuse-moi. J'avais survolé trop vite :
C'est la collection Sortfields, qui pose ici problème, car elle n'existe pas sur les version antérieures
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 6 déc. 2011 à 17:02
Oublie alors complètement l'utilisation de cette collection sortfields et applique uniquement la méthode sort de excel 2003, telle qu'exposée ICI (MSDN)
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 6 déc. 2011 à 17:20
Ne sois pas effrayée pour si peu.
A quoi, dans ton appli, te sert la collection sortkeys (que tu vides, d'ailleurs, vois-je) ?
Pas à grand-chose, hein
Débarrasse-toi alors de cette utilisation et sers-toi directement de la méthode sort. Les arguments que tu utilises sont les mêmes sous 2003 et sous 2007.
Il te faudra simplement y préciser ta clé
Key1:=Range("A1")
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
scampy
Messages postés12Date d'inscriptiondimanche 6 août 2006StatutMembreDernière intervention28 juillet 2013 6 déc. 2011 à 18:19
C'est bon j'ai réduit le code à sa portion congrue
Private Sub Worksheet_Change(ByVal Target As Range)
Range("A2:A1000").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
et ça marche sur 2007 ; demain je verrai si ça marche aussi sur 2003