Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

compatibilite vba 2007 => 2003

3 réponses
Avatar
Hawk
Bonjour,

Lorsque je fais des macros avec excel 2007, si j'ouvre le classeur
avec 2003, je suis obligé de refaire la macro sous excel 2003 sinon
elle ne fonctionne pas.
En fait, tout depend de ce que fait la macro ! Mais c'est agaçant !
Y aurait-il un moyen de dire a excel 2007 de generer du code qui
fonctionne avec 2003.
J'ai deja dans les preferences choisi l'option de sauvegarder le
classeur en 2000-2003.

Merci

3 réponses

Avatar
Misange
Bonjour

Il faut que nous en dises plus sur ce qui ne fonctionne pas et les
messages d'erreur que tu as. Le VBA n'a pas changé avec le passage de
2003 à 2007. Tu peux rencontrer des erreurs liées par exemple aux
extensions des fichiers qui elles ont changé ou à l'utilisation de
fonctionnalités dispos dans 2007 et non dans 2003 que tu manipulerais
par VBA. Sinon pas de pb particulier et nous sommes nombreux à passer
d'une version à l'autre avec le même code VBA ;-)
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Lorsque je fais des macros avec excel 2007, si j'ouvre le classeur
avec 2003, je suis obligé de refaire la macro sous excel 2003 sinon
elle ne fonctionne pas.
En fait, tout depend de ce que fait la macro ! Mais c'est agaçant !
Y aurait-il un moyen de dire a excel 2007 de generer du code qui
fonctionne avec 2003.
J'ai deja dans les preferences choisi l'option de sauvegarder le
classeur en 2000-2003.

Merci


Avatar
Hawk
L'exemple concret est quand dans mon code je fais du tri.
Un code tout simple :

Range("C1:D8").Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add
Key:=Range("A1:A8"),SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil2").Sort
.SetRange Range("A1:B8")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Ne fonctionne pas avec Excel 2003, "xlsortonvalues" ==>variable non
définie !!!

La même macro avec Excel 2003 crée ce code :

Range("C1:D8").Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom,DataOption1:=xlSortNormal

On Mon, 10 Dec 2007 09:31:48 +0100, Misange
wrote:

Bonjour

Il faut que nous en dises plus sur ce qui ne fonctionne pas et les
messages d'erreur que tu as. Le VBA n'a pas changé avec le passage de
2003 à 2007. Tu peux rencontrer des erreurs liées par exemple aux
extensions des fichiers qui elles ont changé ou à l'utilisation de
fonctionnalités dispos dans 2007 et non dans 2003 que tu manipulerais
par VBA. Sinon pas de pb particulier et nous sommes nombreux à passer
d'une version à l'autre avec le même code VBA ;-)
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Lorsque je fais des macros avec excel 2007, si j'ouvre le classeur
avec 2003, je suis obligé de refaire la macro sous excel 2003 sinon
elle ne fonctionne pas.
En fait, tout depend de ce que fait la macro ! Mais c'est agaçant !
Y aurait-il un moyen de dire a excel 2007 de generer du code qui
fonctionne avec 2003.
J'ai deja dans les preferences choisi l'option de sauvegarder le
classeur en 2000-2003.

Merci




Avatar
MichDenis
Quand tu développe une application, tu le fais
avec la version la plus "ancienne" du park des usagers
ont à leur disposition .... ça aide !

Et dans le cas présent, si tu enlèves
SortOn:=xlSortOnValues , ça fonctionnera sous les
2 versions 2003 et 2007 ... NON ???

Il y a d'autres exemples similaires entre d'autres versions d'excel.
c'est une problématique connue !!!


"Hawk" a écrit dans le message de news:

L'exemple concret est quand dans mon code je fais du tri.
Un code tout simple :

Range("C1:D8").Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add
Key:=Range("A1:A8"),SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil2").Sort
.SetRange Range("A1:B8")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Ne fonctionne pas avec Excel 2003, "xlsortonvalues" ==>variable non
définie !!!

La même macro avec Excel 2003 crée ce code :

Range("C1:D8").Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom,DataOption1:=xlSortNormal

On Mon, 10 Dec 2007 09:31:48 +0100, Misange
wrote:

Bonjour

Il faut que nous en dises plus sur ce qui ne fonctionne pas et les
messages d'erreur que tu as. Le VBA n'a pas changé avec le passage de
2003 à 2007. Tu peux rencontrer des erreurs liées par exemple aux
extensions des fichiers qui elles ont changé ou à l'utilisation de
fonctionnalités dispos dans 2007 et non dans 2003 que tu manipulerais
par VBA. Sinon pas de pb particulier et nous sommes nombreux à passer
d'une version à l'autre avec le même code VBA ;-)
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Lorsque je fais des macros avec excel 2007, si j'ouvre le classeur
avec 2003, je suis obligé de refaire la macro sous excel 2003 sinon
elle ne fonctionne pas.
En fait, tout depend de ce que fait la macro ! Mais c'est agaçant !
Y aurait-il un moyen de dire a excel 2007 de generer du code qui
fonctionne avec 2003.
J'ai deja dans les preferences choisi l'option de sauvegarder le
classeur en 2000-2003.

Merci