Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
832 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Methode 'Paste' de l'objet -Worksheet' a échoué

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Methode 'Paste' de l'objet -Worksheet' a échoué

n°1428399
grosspalf
Posté le 21-08-2006 à 09:56:08  profilanswer
 

Je reçois ce message d'erreur "Methode 'Paste' de l'objet  -Worksheet' a échoué" lors du lancement de la macro suivante, pourtant extrêmement simple (il s'agit simplement de supprimer certaine lignes puis de copier-coller d'autres sous excel) :
 
    Sheets("Mise en page" ).Select
    Rows("11:236" ).Select
    Selection.Delete Shift:=xlUp
    Sheets("Résultats Macro" ).Select
    Rows("6:199" ).Select
    Selection.Copy
    Sheets("Mise en page" ).Select
    Range("A12" ).Select
    ActiveSheet.Paste
    Range("A1" ).Select
 
Le débugger situe l'erreur à la ligne "ActiveSheet.Paste".
Quelqu'un aurait-il une idée sur l'origine de cette erreur ?
D'avance merci.

mood
Publicité
Posté le 21-08-2006 à 09:56:08  profilanswer
 

n°1428430
DamienCYS
Posté le 21-08-2006 à 11:01:38  profilanswer
 

ton code marche,
ta feuille ne serait t'elle pas protégée ?

n°1428435
galopin01
Posté le 21-08-2006 à 11:07:15  profilanswer
 

Bonjour,
elle est dans quel module ta macro ?
Je pense que si tu mets tes macros dans un module standart ça marchera mieux.
A+

n°1428441
grosspalf
Posté le 21-08-2006 à 11:13:43  profilanswer
 

Effectivement, la feuille dans laquelle je copie les données est protégée (mais pas celle dans laquelle je colle et supprime).
Et effectivmement, en ôtant la protection de cette feuille, le code fonctionne.
Cependant, j'autorisais dans la protection de la feuille la sélection de toutes les cellules. Cela n'est pas suffisant pour permettre la copie ? Existe-t-il une option permettant de rendre la copie possible malgré une protection de la feuille ?
Il est en effet important que cette feuille reste protégée.
 
Merci de ton aide

n°1428507
DamienCYS
Posté le 21-08-2006 à 11:57:11  profilanswer
 

le plus simple est que tu déverouilles ta feuille juste avant le collage et que tu reverouille après a l'aide de  
ActiveSheet.Unprotect Password:="xxxxxx" et ActiveSheet.Protect Password:="xxxxxx"

n°1428586
grosspalf
Posté le 21-08-2006 à 14:05:53  profilanswer
 

  J'ai corrigé le code comme ci-dessous mais le problème reste le même
 
 Sheets("Mise en page" ).Select
    Rows("11:236" ).Select
    Selection.Delete Shift:=xlUp
    Sheets("Résultats Macro" ).Select
    ActiveSheet.Unprotect
    Rows("6:199" ).Select
    Selection.Copy
    Sheets("Mise en page" ).Select
    Range("A12" ).Select
    ActiveSheet.Paste
    Sheets("Résultats Macro" ).Select
    ActiveSheet.Protect
    Sheets("Mise en page" ).Select
    Range("A1" ).Select
 
En fait un autre problème à l'air d'apparaitre. J'ai défini des plages pouvant être modifiées par l'utilisateur dans la feuille protégée .
Lorsque je ne protège pas la feuille mais que ces plages sont définies, j'ai le message d'erreur. En revanche, si je supprime la définiton de ces plages, que j'enlève (même manuellement) la protection de la feuille, alors la copie se passe sans problème. C'est assez étrange étant donné que les plages que je permet à l'utilisateur de modifier ne sont censés avoir un impact que lorsque la feuille est effectivement protégée!
 

n°1428592
DamienCYS
Posté le 21-08-2006 à 14:12:59  profilanswer
 

ton protect est mal placé car la tu enleve la protection de la feuille "Résultats Macro" et tu colle dans "Mise en page" modifie le donc comme ca :
 
    Sheets("Mise en page" ).Select  
    Rows("11:236" ).Select  
    Selection.Delete Shift:=xlUp  
    Sheets("Résultats Macro" ).Select  
    Rows("6:199" ).Select  
    Selection.Copy  
    Sheets("Mise en page" ).Select  
    Range("A12" ).Select  
    ActiveSheet.Unprotect  
    ActiveSheet.Paste  
    ActiveSheet.Protect  
    Range("A1" ).Select  
 
et si tu protèges avec un mot de passe il faut que le passe en option

n°1428671
grosspalf
Posté le 21-08-2006 à 16:17:28  profilanswer
 

non, la feuille "mise en page" n'est jamais protégé et n'a pas besoin de l'être.
Je suis d'accord que c'est étrange que la feuille a copier ait besoin d'être non-protégée, mais c'est bien là le problème.
 
Et comme je le disais dans le post précédent, c'est les plages de cellules modifiables que la feuille (à copier) soit modifiable ou non qui semblent poser problème.
 

n°1428686
DamienCYS
Posté le 21-08-2006 à 16:28:08  profilanswer
 

effectivement uniquement la feuille de destination devrait etre non protégée. l'autre n'as pas d'incidence.  
qu'entends tu par "plages pouvant être modifiées par l'utilisateur dans la feuille protégée "

n°1429394
grosspalf
Posté le 22-08-2006 à 14:59:44  profilanswer
 

Je parlais des plages que tu peux définir dans "outil-protection-permettre  aux utilisateurs de modifier des plages".
 
J'ai contourné le problème en enlevant ces plages et en ôtant la protection de la feuille uniquement au moment où ma macro modifie les plages (grâce à ce que tu m'as indiqué plus haut, donc merci  )
 
Mais je ne comprends toujours pas en quoi ces plages ont une incidence, et en quoi le fait de protéger la feuille à copier pose un problème. Pour le deuxième, c'est  peut être quelquechose dans le genre  la protection accorde les droits en accès et pas en exécution, et la copie nécessite une exécution mais ça me parait bizare.
 
En tout cas merci pour ton aide, maintenant ça marche.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Methode 'Paste' de l'objet -Worksheet' a échoué

 

Sujets relatifs
[Resolu][C#.NET] Appel methode static impossible ?Appeller un objet dans un objet
Afficher l'objet d'une URL[C#] Passer mon propre objet à ma Web Methode
[PHP] Prog. orientée objet pas gérée par mon serveur O_oComment inserer un Objet OLE ou graphique dans une table paradox?
[RESOLU] EJB : Problème méthode findAll() avec JonasConception et methode statique
[.NET] Objet Graphics, DrawImage et occupation mémoire 
Plus de sujets relatifs à : Methode 'Paste' de l'objet -Worksheet' a échoué


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR