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

Tri dans Macro

7 réponses
Avatar
Francis
Bonjour,

J'ai besoin de vos lumières :

J'ai un fichier EXCEL qui contient une macro.

Cette macro ouvre un autre fichier Excel par l'instruction :
Workbooks.Open FileName:="C:\Datas\STAXCL.xls"
puis formate les colonnes, les lignes et ma foi, tout ça, ça marche bien.

Maintenant, je souhaite faire du tri, et là je sèche !

J'utilise les intructions suivantes :

ActiveWorkbook.Worksheets("STAXCL").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("STAXCL").Sort.SortFields.Add
Key:=Range("I2:I20") _
, SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("STAXCL").Sort
.SetRange Range("A2:M20")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


Et j'ai le message d'erreur suivant :

Microsoft Visual Basic
Erreur d'exécution '438':
Propriété ou méthode non géré par cet objet


Quelqu'un peut-il m'aider ?

Merci,
Francis

7 réponses

Avatar
Brunos
Bonjour Francis,
Ca a l'air correct pourtant.
C'est peut-être un problème de version. Tu devrais essayer en supprimant la
ligne Header = xlGuess
Brunos


"Francis" a écrit dans le message de news:
up9x$
Bonjour,

J'ai besoin de vos lumières :

J'ai un fichier EXCEL qui contient une macro.

Cette macro ouvre un autre fichier Excel par l'instruction :
Workbooks.Open FileName:="C:DatasSTAXCL.xls"
puis formate les colonnes, les lignes et ma foi, tout ça, ça marche bien.

Maintenant, je souhaite faire du tri, et là je sèche !

J'utilise les intructions suivantes :

ActiveWorkbook.Worksheets("STAXCL").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("STAXCL").Sort.SortFields.Add
Key:=Range("I2:I20") _
, SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("STAXCL").Sort
.SetRange Range("A2:M20")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


Et j'ai le message d'erreur suivant :

Microsoft Visual Basic
Erreur d'exécution '438':
Propriété ou méthode non géré par cet objet


Quelqu'un peut-il m'aider ?

Merci,
Francis







Avatar
Francis
Bonjour Brunos,

Tout d'abord, merci de te pencher sur mon cas ;-)

J'ai essayé en supprimant cette ligne : toujours le même message !

Quand je clic sur "Débogage", l'instruction en erreur est :
ActiveWorkbook.Worksheets("STAXCL").Sort.SortFields.Clear

Arghhh

Francis


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

Bonjour Francis,
Ca a l'air correct pourtant.
C'est peut-être un problème de version. Tu devrais essayer en supprimant
la ligne Header = xlGuess
Brunos


"Francis" a écrit dans le message de news:
up9x$
Bonjour,

J'ai besoin de vos lumières :

J'ai un fichier EXCEL qui contient une macro.

Cette macro ouvre un autre fichier Excel par l'instruction :
Workbooks.Open FileName:="C:DatasSTAXCL.xls"
puis formate les colonnes, les lignes et ma foi, tout ça, ça marche bien.

Maintenant, je souhaite faire du tri, et là je sèche !

J'utilise les intructions suivantes :

ActiveWorkbook.Worksheets("STAXCL").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("STAXCL").Sort.SortFields.Add
Key:=Range("I2:I20") _
, SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("STAXCL").Sort
.SetRange Range("A2:M20")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


Et j'ai le message d'erreur suivant :

Microsoft Visual Basic
Erreur d'exécution '438':
Propriété ou méthode non géré par cet objet


Quelqu'un peut-il m'aider ?

Merci,
Francis











Avatar
Brunos
1. Quelle version d'Excel utilises-tu ? Quelle est la version du fichier ?
2. Enregistreur macro : enregistre un tri avec ta version et compare le
code.
Brunos

"Francis" a écrit dans le message de news:
uC$
Bonjour Brunos,

Tout d'abord, merci de te pencher sur mon cas ;-)

J'ai essayé en supprimant cette ligne : toujours le même message !

Quand je clic sur "Débogage", l'instruction en erreur est :
ActiveWorkbook.Worksheets("STAXCL").Sort.SortFields.Clear

Arghhh

Francis


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

Bonjour Francis,
Ca a l'air correct pourtant.
C'est peut-être un problème de version. Tu devrais essayer en supprimant
la ligne Header = xlGuess
Brunos


"Francis" a écrit dans le message de news:
up9x$
Bonjour,

J'ai besoin de vos lumières :

J'ai un fichier EXCEL qui contient une macro.

Cette macro ouvre un autre fichier Excel par l'instruction :
Workbooks.Open FileName:="C:DatasSTAXCL.xls"
puis formate les colonnes, les lignes et ma foi, tout ça, ça marche
bien.

Maintenant, je souhaite faire du tri, et là je sèche !

J'utilise les intructions suivantes :

ActiveWorkbook.Worksheets("STAXCL").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("STAXCL").Sort.SortFields.Add
Key:=Range("I2:I20") _
, SortOn:=xlSortOnValues, Order:=xlDescending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("STAXCL").Sort
.SetRange Range("A2:M20")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


Et j'ai le message d'erreur suivant :

Microsoft Visual Basic
Erreur d'exécution '438':
Propriété ou méthode non géré par cet objet


Quelqu'un peut-il m'aider ?

Merci,
Francis















Avatar
Francis
1. Quelle version d'Excel utilises-tu ?


Excel 2003

Quelle est la version du fichier ?


Fichier de données provient d'un AS400 via client acces en format BIFF8 (MS
Excel 8)
D'habitude : jamais aucun de problème.

2. Enregistreur macro : enregistre un tri avec ta version et compare le
code.


C'est la méthode que j'ai employé pour contituer ma macro
(et que j'emplois toujours, n'étant pas du tout un virtuose de VB)


Francis

Avatar
Brunos
Je ne vois pas...
Le fichier est enregistré en version 2003 ?
Tu mettre une copie sur http://cjoint.com/ pour qu'on puisse tester.
Bruno

"Francis" a écrit dans le message de news:
%
1. Quelle version d'Excel utilises-tu ?


Excel 2003

Quelle est la version du fichier ?


Fichier de données provient d'un AS400 via client acces en format BIFF8
(MS Excel 8)
D'habitude : jamais aucun de problème.

2. Enregistreur macro : enregistre un tri avec ta version et compare le
code.


C'est la méthode que j'ai employé pour contituer ma macro
(et que j'emplois toujours, n'étant pas du tout un virtuose de VB)


Francis




Avatar
Francis
Bonjour Brunos,

Merci pour ta proposition.
Je me constitue 2 fichiers et les placerai sur le site "cjoint" (je pense
demain matin).

Francis


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

Je ne vois pas...
Le fichier est enregistré en version 2003 ?
Tu mettre une copie sur http://cjoint.com/ pour qu'on puisse tester.
Bruno

"Francis" a écrit dans le message de news:
%
1. Quelle version d'Excel utilises-tu ?


Excel 2003

Quelle est la version du fichier ?


Fichier de données provient d'un AS400 via client acces en format BIFF8
(MS Excel 8)
D'habitude : jamais aucun de problème.

2. Enregistreur macro : enregistre un tri avec ta version et compare le
code.


C'est la méthode que j'ai employé pour contituer ma macro
(et que j'emplois toujours, n'étant pas du tout un virtuose de VB)


Francis








Avatar
Francis
J'ai trouvé ;-)))))

Il manquait en fait l'instruction Range("A2:M20").Select en première ligne.

Merci encore Brunos pour ton aide.

Cordialement,
Francis



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

Je ne vois pas...
Le fichier est enregistré en version 2003 ?
Tu mettre une copie sur http://cjoint.com/ pour qu'on puisse tester.
Bruno