Problème de sélection de plage nommée VBA

Maxitos

XLDnaute Nouveau
Bonjour les amis,

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é. :confused:

Je ne comprends pas comment sélectionner simplement cette plage.

Je vous joins un bout de fichier,

Merci par avance,

Max.
 

Pièces jointes

  • Classeur1.xlsm
    16.3 KB · Affichages: 99
  • Classeur1.xlsm
    16.3 KB · Affichages: 108
  • Classeur1.xlsm
    16.3 KB · Affichages: 102

Maxitos

XLDnaute Nouveau
Re : Problème de sélection de plage nommée VBA

Merci à vous deux,

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 !
 

Maxitos

XLDnaute Nouveau
Re : Problème de sélection de plage nommée VBA

Rectification !

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.

Un extrait de mon code :

Workbooks(classeur).Sheets(feuille).Activate
Range("XFD1048576") = 1000
Range("XFD1048576").Select
Selection.Copy

Application.Goto Reference:="plage"

Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False

Workbooks(classeur).Sheets(feuille).Activate

Des idées ?

Merci d'avance
 
Dernière édition:

ERIC S

XLDnaute Barbatruc
Re : Problème de sélection de plage nommée VBA

RE

Range("plage").Copy
ActiveSheet.Paste


pourquoi sélectionner ?

modif : désolé j'ai lu ton pb à l'envers (j'étais appelé par mon poisson en train de cramer...)
 
Dernière édition:

Maxitos

XLDnaute Nouveau
Re : Problème de sélection de plage nommée VBA

J'ai modifié mon code sans Selectionner :

Workbooks(classeur).Sheets(feuille).Activate

Range("XFD1048576") = 1000
Range("XFD1048576").Copy

Application.Goto Reference:="plage"

ActiveSheet.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Workbooks(classeur).Sheets(feuille).Activate


L'erreur est maintenant "Erreur définie par l'application ou pas l'objet" sur la ligne
ActiveSheet.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False


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" :D
 
Dernière édition:

Maxitos

XLDnaute Nouveau
Re : Problème de sélection de plage nommée VBA

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;

Merci pour votre aide
 

Pièces jointes

  • pastespecial.xlsm
    18.4 KB · Affichages: 50
Dernière édition:

ERIC S

XLDnaute Barbatruc
Re : Problème de sélection de plage nommée VBA

Re

en faisant plus attention, j'espère t'aider...

j'ai regardé ce code

Code:
   Sheets("Feuil1").Range("A11").Copy
   Sheets("Feuil2").Activate
    'Range("plage1").Select
    Range("Feuil1!plage1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False

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
 

Maxitos

XLDnaute Nouveau
Re : Problème de sélection de plage nommée VBA

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.
 

Maxitos

XLDnaute Nouveau
Re : Problème de sélection de plage nommée VBA

Cela ne fonctionne pas, ça revient à "La méthode Select de la classe range a échoué. "

Mais je suis de toute façon positionné sur le bon classeur et la bonne feuille, celle ou est défini le nom "plage"

Workbooks(classeur).Sheets(feuille).Activate

Cette methode non plus ne fonctionne pas :

Workbooks(classeur).Sheets(feuille).Range("plage").Select

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.
 

Discussions similaires

Statistiques des forums

Discussions
312 100
Messages
2 085 290
Membres
102 851
dernier inscrit
didine501