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

Methode 'Paste' de l'objet -Worksheet' a échoué - VB/VBA/VBS - Programmation

Marsh Posté le 21-08-2006 à 09:56:08    

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.

Reply

Marsh Posté le 21-08-2006 à 09:56:08   

Reply

Marsh Posté le 21-08-2006 à 11:01:38    

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

Reply

Marsh Posté le 21-08-2006 à 11:07:15    

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

Reply

Marsh Posté le 21-08-2006 à 11:13:43    

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

Reply

Marsh Posté le 21-08-2006 à 11:57:11    

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"

Reply

Marsh Posté le 21-08-2006 à 14:05:53    

  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!
 

Reply

Marsh Posté le 21-08-2006 à 14:12:59    

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

Reply

Marsh Posté le 21-08-2006 à 16:17:28    

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.
 

Reply

Marsh Posté le 21-08-2006 à 16:28:08    

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 "

Reply

Marsh Posté le 22-08-2006 à 14:59:44    

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed