Problème selection Range

zxzx

XLDnaute Nouveau
bonjour,

voilà un petit programme que je pensais assez simple mais qui malheureusement me pose quelques problèmes.
Le but : copié/ collé 2 colonnes puis effectuer un trie.

Code:
Sub trier()

'-----TRIAGE DONNES TAUX1-----
Sheets("Taux1").Activate
Range("A2:A12,E2:E12").Select
Application.CutCopyMode = False
Selection.Copy
Range("A29").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Taux1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Taux1").Sort.SortFields.Add Key:=Range("B29:B39"), _
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Taux1").Sort
    .SetRange Range("A28:B39")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With


'-----TRIAGE DONNEES FX-----
Sheets("FX").Activate
Range("A2:A10,E2:E10").Select
Application.CutCopyMode = False
Selection.Copy
Range("A24").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Application.CutCopyMode = False
ActiveWorkbook.Worksheets("FX").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("FX").Sort.SortFields.Add Key:=Range("B24:B32"), _
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("FX").Sort
    .SetRange Range("A23:B32")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With


End Sub

le code bloque dans le partie "TRIAGE DONNEES FX" à la ligne Range("A2:A10,E2:E10").Select
j'ai le message d'erreur suivant : La méthode 'Range' de l'objet '_Global' a échoué


le problème c'est que le deuxième partie du code est un copié/collé de la première partie (en modifiant les données sélectionnées) qui marche.


Une idée ?
merci d'avance de l'aide
 

job75

XLDnaute Barbatruc
Re : Problème selection Range

Bonjour zxzx,

Si vous avez mis cette macro dans le code d'une feuille c'est normal qu'elle plante.

Car la feuille n'étant pas définie devant le Range, VBA considère que c'est la feuille du code.

L'activation ne change rien à l'affaire.

Mettez donc la macro dans un Module standard (Module1).

A+
 

dmc

XLDnaute Occasionnel
Re : Problème selection Range

Bonsoir zxzx et job75
L'utilisation des select est déconseillée.
Ne vaudrait-il pas mieux écrire :

CutCopyMode = False
Worksheets("FX").Range("A2:A10,E2:E10").Copy
et ainsi de suite sur le reste de la macro ?
Bonne chance
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : Problème selection Range

Bonsoir
A 1ere vue ....; dejà repréciser le classeur et la feuille du ".select" ( c'est + long à écrire SÛR !!) , après une longue période d'arrêt j'ai recommencé le vba cette semaine et pour aller + vite , ce matin j'ai écrit une macro > idem , resultat même Pb : je suis donc repassé par la vieille méthode pour le résoudre et c'est OK , C'est sûr il y a mieux ..... mais faut que je retrouve
Ce qu'il faut retenir c'est que VBA réagi en rapport ou se trouve le code ( les niveaux) : feuille, module ...etc
Je peux vous certifier que j'ai eu des sueurs en début d'année avec des appels de Sub d'USF car pas placé au bon niveau et mal renseigné !!!
 

zxzx

XLDnaute Nouveau
Re : Problème selection Range

salut pierrot

le code bloque dans le partie "TRIAGE DONNEES FX" à la ligne Range("A2:A10,E2:E10").Select
j'ai le message d'erreur suivant : La méthode 'Range' de l'objet '_Global' a échoué


de plus remplacer

Code:
Sheets("FX").Activate
Range("A2:A10,E2:E10").Select
Application.CutCopyMode = False
Selection.Copy


par


Code:
Sheets("FX").Activate
Application.CutCopyMode = False
Range("A2:A10,E2:E10").Copy

comme conseiller par dmc provoque le même message d'erreur
 

dmc

XLDnaute Occasionnel
Re : Problème selection Range

Bonjour zxzx & Pierrot
pour moi, l'instruction n'a pas été correctement rectifiée :
ne pas oublier le worksheets sur la ligne, sinon le focus est perdu :
Worksheets("FX").Range("A2:A10,E2:E10").Copy
cela doit marcher, mais ton curseur , ou ta cellule en cours, ne se déplacera pas, tu travailles "à distance" sur les cellules a2:a10 et c'est mieux.
A +
 

zxzx

XLDnaute Nouveau
Re : Problème selection Range

salut pierrot, salut dmc

désolé pour le temps de réponse un peu long mais je n'avais pas accès au programme pendant le week end.

le code corrigé ne marche toujours pas

Code:
Worksheets("FX").Activate
Application.CutCopyMode = False
Worksheets("FX").Range("A2:A10,E2:E10").Copy

ce que je ne comprend pas c'est comment le première partie peut marcher et la deuxième non alors que se sont les mêmes (seul le nom de la feuille et da la plage change)

ps: il n'y a pas de cellule fusionné dans la plage sélectionnée
 

zxzx

XLDnaute Nouveau
Re : Problème selection Range

salut job

j'ai résolu le problème :) un peu beaucoup grâce à toi.

en voulant présenter un fichier épuré avec des valeurs fixes la macro marche très bien.

en fait mon fichier original est basé sur bloomberg (logiciel de finance) ce qui me permet de récupérer des cours d'action en direct, apparemment cette récupération en direct qui faisait planter la macro.
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 146
Membres
103 130
dernier inscrit
FRCRUNGR