Compatibilité excel 2007/2003 VBA [Résolu]

scampy 12 Messages postés dimanche 6 août 2006Date d'inscription 28 juillet 2013 Dernière intervention - 6 déc. 2011 à 16:45 - Dernière réponse : scampy 12 Messages postés dimanche 6 août 2006Date d'inscription 28 juillet 2013 Dernière intervention
- 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
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 6 déc. 2011 à 17:32
3
Merci
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

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 6 déc. 2011 à 16:49
0
Merci
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
Commenter la réponse de ucfoutu
scampy 12 Messages postés dimanche 6 août 2006Date d'inscription 28 juillet 2013 Dernière intervention - 6 déc. 2011 à 16:54
0
Merci
C'est ce que j'ai fait pour l'enregistrement dégradé, mais ça ne fonctionne pas

Merci qd même!
Commenter la réponse de scampy
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 6 déc. 2011 à 16:58
0
Merci
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
Commenter la réponse de ucfoutu
scampy 12 Messages postés dimanche 6 août 2006Date d'inscription 28 juillet 2013 Dernière intervention - 6 déc. 2011 à 17:00
0
Merci
Oui alors que faire ??
Commenter la réponse de scampy
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 6 déc. 2011 à 17:02
0
Merci
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
Commenter la réponse de ucfoutu
scampy 12 Messages postés dimanche 6 août 2006Date d'inscription 28 juillet 2013 Dernière intervention - 6 déc. 2011 à 17:08
0
Merci
Je n'y comprends rien du tout excuse moi je suis trop débutante

Merci de ton aide je vais potasser un peu qd même
Commenter la réponse de scampy
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 6 déc. 2011 à 17:20
0
Merci
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
Commenter la réponse de ucfoutu
scampy 12 Messages postés dimanche 6 août 2006Date d'inscription 28 juillet 2013 Dernière intervention - 6 déc. 2011 à 18:19
0
Merci
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

<merci pour ton aide précieuse et ta gentillesse.
Commenter la réponse de scampy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.