copier / coler sur feuilles protégées

R

Robert

Guest
Salut le forum,

Copier / coller... je m'englue oui!! je voudrais faire un chose qui me paraît simple.
Toutes mes feuilles sont protégées. Je voudrais copier une range et la coller dans une autre range sur TOUTES les feuilles. Je n'y parvient qu'en faisant 3 boucles FOR EACH... NEXT et ça n'énerve.
une âme sensible pourrait-elle corriger mes erreurs :

Public Sub test()
Dim ws As Worksheet
For Each ws In Sheets
ws.Unprotect
Next ws
Sheets(1).Range("A1").Copy
For Each ws In Sheets
ws.Select
ActiveSheet.Paste Destination:=ActiveSheet.Range("B1")
Next ws
For Each ws In Sheets
ws.Protect
Next ws
End Sub

si j'intègre protect ou unprotect dans la boucle qui colle, ça plante.

Que le Dieu Vébéha me protège... Mais qu'il me déprotège aussi !!

Merci de votre aide.

À plus,

Robert
 
L

LaurentTBT

Guest
Bonsoir Robert, bonsoir tout le monde.

Sans même parler de VBA, quand tu déprotèges une feuille, cela vide ce que tu avais copié auparavant (point que je viens de découvrir). Ton code avec trois boucle est donc une bonne solution. Ou alors, si tu veux intègrer protect et unprotect dans la boucle qui colle, il faut que tu recopies sheets(1).range("A1") à chaque fois juste après avoir déprotéger:

Public Sub test()
Dim ws As Worksheet
For Each ws In Sheets
ws.Unprotect
Sheets(1).Range("A1").Copy
ws.Paste Destination:=ws.Range("B1")
ws.Protect
Next ws
End Sub

Nb: j'ai aussi modifié la partie Paste pour ne pas passer par un select et au bilan, la procédure Sub est bcp plus courte.

Bonne nuit. Laurent
 
R

Robert

Guest
Salut Laurent,

C'est vraiment super car non content de me dépatouiller tu m'expliques la raison de ma galère. Je vais pouvoir colller en paix (j'ai mis 3 l car j'en avais oublier un dans le sujet de mon post...)

merci beaucoup, c'est très sympa.

Bonne nuit à toi aussi.

Robert
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 452
Messages
2 088 541
Membres
103 880
dernier inscrit
rafaelredsc