XL 2010 Code verrouillage des formes à toutes les feuilles

Océane-33

XLDnaute Nouveau
Bonsoir à tous ,

Débutante en VBA, j ai inséré dans des feuilles EXCEL des formes auxquelles j'ai mis des macros.
en voulant finalisée mon projet , impossible de verrouiller ces formes, même par les propriétés ou en protégeant le
classeur, la seule seule qui marche c 'est en protégeant la feuille active et en décochant ce que l 'on veut

mais ca marche … que sur la feuille active évidement.

Après plusieurs essais , j 'ai réussi à trouver cela avec l 'enregistreur de macro que j 'ai mis à l 'ouverture du classeur ,
mais cela marche que sur ma feuille 1.


ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

ActiveSheet.EnableSelection = xlNoSelection

Si vous pouviez m 'aider .
Merci
 

Staple1600

XLDnaute Barbatruc
Re

Ci-dessous la version raccourcie
(ca ne change rien, mais c'est moins fatiguant à écrire ;))
VB:
Sub Protection()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Protect DrawingObjects:=-1, Contents:=-1, Scenarios:=-1
ws.EnableSelection = -4142
Next
End Sub
 

Océane-33

XLDnaute Nouveau
Bonsoir Staple1600,

Merci d' avoir bien voulu prendre le temps de se pencher sur mon problème.
Je pense que cela fonctionne , mais du coup , le code de mon bouton ne marche plus , à cause de la

protection , en général je démasque des feuilles que j 'ouvre et les dissimule au retour sur la feuille 1

Sub Acces_AAA()

Sheets("AAA").Visible = True
Sheets("AAA").Activate
'essai masquage
Application.ActiveWindow.DisplayHeadings = False
Range("A1").Select
'Select Case "A1"
'End Select
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Si jamais je devais me moquer, ce serait avec humour, ironie et tutti quanti ;)
Mais sur un ton badin, amical (comme toujours)
C'est ma manière d'être ici bas ;)

Mais pour le moment, je n'ai point de raison de passer en mode humour puisque tu coches toutes les cases du padawan idéal ;)
(tu cherches, tu t'informes, tu essaies, tu échoues, puis tu recommences )

Je vais aller voir ta PJ avant d'aller enfiler mon pyjama en pilou.
 

Staple1600

XLDnaute Barbatruc
Re

Tu avais déjà la même macro (mais à la sauce English) dans ta PJ, que celle que je t'ai proposé à ma sauce ;)
VB:
Sub ProtectMethodAllSheets()

   Dim shtCurrent As Worksheet

   For Each shtCurrent In ActiveWorkbook.Worksheets
      shtCurrent.Protect Password:="Pass", Contents:=False, _
                     DrawingObjects:=False, Scenarios:=True, _
                     AllowFormattingCells:=True, AllowSorting:=True
      Next shtCurrent
End Sub
Tu n'avais pas vu la similitude?

NB: On remarquera la compléxité de ton mot de passe ;)
 

Staple1600

XLDnaute Barbatruc
Re

Justement, à propos de ton beau fichier!
On ne joint jamais une application originale mais un fichier exemple créé spécialement pour illustrer la problématique.
Le fichier que tu as joint comprends trop de lignes de code et surtout il n'est pas anonymisé.

Si j'étais moi, je remplacerai illico presto avant qu'il soit supprimé par le modérateur du forum.
 

Staple1600

XLDnaute Barbatruc
Re

J'ai testé ceci sur mon petit fichier de test tout pas beau, tout simple et tout allégé ;)
A savoir un classeur avec trois feuilles sur lesquelles figurent des formes ou des images dont certaines sont associées à une macro.
Donc avec le code ci-dessous, les formes sont protégées et toujours accessibles pour cliquer dessus pour lancer leur macro associée.
VB:
Sub test_protect_shapes()
Dim ws As Worksheet, shp As Shape
For Each ws In Worksheets
For Each shp In ws.Shapes
shp.Locked = True
Next shp
ws.Protect , -1, -1
Next ws
End Sub
 

Océane-33

XLDnaute Nouveau
Bonjour Staple1600,

Merci pour conseil , en effet c'est le PC et excel de mon oncle qui m' héberge
en attendant que je puisse rebondir ayant perdu mon boulot au cause de

la pandémie , je voulais lui faire la surprise en lui faisant un des fichiers sur lequel il voulait aboutir, ca me permet d 'apprendre et de boucler utilement mes journées.
je teste ta réponse dans la soirée , merci beaucoup.
 

Océane-33

XLDnaute Nouveau
Je viens de refaire ton test et pour moi cela ne marche pas, je pense que je ne mets pas le code au bon endroit.
j 'ai essayé de coller ton code dans ThisWorbook puis dans chaque feuilles et enfin dans un module ...je suis perdue
y a deux mois je ne connaissais pas Excel , merci pour votre compréhension, la route sera longue. :rolleyes:
 

Discussions similaires

Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 225
Messages
2 086 412
Membres
103 202
dernier inscrit
Claire2BM