Je fais appel à votre expertise pour palier un problème qui me rend dingue.
En effet, j'ai dans ma Feuil1 une plage, nommée "plage" qui fait référence à Feuil2!$C$2:$C$6 .
Lorsqu'en VBA je cherche à faire un range("plage").select (avec la Feuil1 active)
Je me retrouve avec une erreur d'exécution 1004 : La méthode Select de la classe range a échoué.
Je ne comprends pas comment sélectionner simplement cette plage.
Si je ne m'abuse ERIC S, application.goto ne "sélectionne" pas la plage si ?
(le but étant de faire un Selection.Pastespecial... derrière, et avec application.goto cela ne fonctionne pas pour moi)
Pierrejean, votre méthode est largement au dessus de mon niveau de compréhension de VBA ! Je m'incline devant l'ingéniosité, mais je n'arriverai jamais à adapter le code pour mon fichier !
Apres avoir fait Application.Goto , si je fais un Selection.ClearContents , cela fonctionne. C'est donc un probleme de PasteSpecial, j'ai deux hypothèses :
-Soit Application.Goto annule le précédent selection.copy
-Soit je suis un nullard qui ne sait pas syntaxer correctement un pastespecial.
EDIT: ERIC S Je précise que "plage" est ma plage de destination d'un PasteSpecial Multiply par 1000 (par exemple)
EDIT 2 : ERIC S Je viens de voir ton "EDIT"
En fait, lorsque je lance le code, la macro ne renvoie pas d'erreur, mais n'effectue pas le PasteSpecial. Elle s'arrete à la bonne plage, bien selectionnée ("plage") , mais ne fait pas le collage spécial. Si je "finis le travail" à la main, cela fonctionne (Coller/CollageSpécial/Multiplication/OK).
Je vous envoi un fichier, il fonctionne. Avec le même code dans mon vrai fichier cela me fait le problème décrit ci-dessus;
en fait ton nom est affecté à feuil1 et non au classeur
je suis allé sur feuil2 et j'ai nommé la même plage (plage1)
la ligne en commentaire fonctionne alors
Oui c'est effectivement une de mes contraintes, le nom doit absolument être défini uniquement dans la feuille 1. (C'est une plage définie avec un decaler/index/equiv/nbval et tout le tralala). Je ne peux pas changer le nom d'étendue.
La méthode avec Application.Goto est celle qui est le plus probante pour l'instant, car elle fonctionne dans le fichier "pastespecial.xlsm" posté plus haut. (Elle sélectionne et fait le collage spécial)
Cependant avec la même formule, dans mon "vrai" fichier, cela s'arrête à la sélection, sans faire le collage. La cellule copiée est bien dans le presse-papier car si je continue la procédure manuellement ça fonctionne.