Buggage de ma macro en feuille verouillé

  • Initiateur de la discussion Initiateur de la discussion Eric
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Eric

Guest
Bonjour à tous,

Je rencontre un pti pb avec une de mes macro lors de la mis en protection de ma feuille de classeur.
Cette macro dont le but est de colorier une série de case(qui ont été débloqué bien sur auparavant) qd le toggle bouton qui la commande est enclenché bug une fois que la feuille est protégé.

Voici le code
Private Sub ToggleButton4_Click()
If ToggleButton4 = True Then
ActiveWorkbook.ActiveSheet.Range('tout4').Interior.ColorIndex = 6
Else
ActiveWorkbook.ActiveSheet.Range('estan4').Interior.ColorIndex = 40
ActiveWorkbook.ActiveSheet.Range('fabr4').Interior.ColorIndex = 15
End If
End Sub

Il m´indique:
Erreur 1004
Impossible d´asigner la propriéte´s color index....


N´y at il pas une solution pour la faire marcher en feuille protégé...

MErci d avance

Eric
 
Bonjour

Je crois bien que tu es obligé de déproteger ta feuille avnt d'appliquer ta couleur et de reprotéger ensuite

Cela donnerait à peu près

Private Sub ToggleButton4_Click()
ActiveWorkbook.ActiveSheet.Unprotect
If ToggleButton4 = True Then
ActiveWorkbook.ActiveSheet.Range('tout4').Interior.ColorIndex = 6
Else
ActiveWorkbook.ActiveSheet.Range('estan4').Interior.ColorIndex = 40
ActiveWorkbook.ActiveSheet.Range('fabr4').Interior.ColorIndex = 15
End If
ActiveWorkbook.ActiveSheet.Protect
End Sub

Bon courage
 
Re:Buggage de ma macro en feuille verouillé

Bonjour Pascal, Eric, le Forum


Je ne suis pas tout à fait d'accord, bien que je soies pressé, je pense Pascal que tu as oublié la méthode Protect avec l'argument 'UserInterfaceOnly'


Voir mon Post du 29-01-03 00:09
Lien supprimé

Où je reprends un très bon explicatif du 'Grand Chef à Trois Plumes' (Laurent Longre :whistle: )

Sinon une mini démo en fichier joint

NB ne pas oublier que ce genre de déclaration est Volatile, d'où la nécessité d'y faire appel en Workbook_Open (voir post en lien pour explications complémentaires)

Sinon, je vois que tu montes bien en postes Pascal 😉, moi en ce moment, je n'ai absolument plus du tout de temps pour mon Forum favori et vous prie de m'en excuser.

Bien à vous tous et toutes
@+Thierry [file name=UserInterfaceOnly.zip size=9084]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/UserInterfaceOnly.zip[/file]
 

Pièces jointes

Merci de votre aide..

Avec la tienne Pascal, je ne rencontre aucun pb

Avec celle de thierry, ca bug toujours

dans ThisWorkbook

Option Explicit
------------
Private Sub Workbook_Open()
Feuille3.Protect UserInterfaceOnly:=True
End Sub

Feuille 3 (Standart)

Option Explicit
-------
Private Sub ToggleButton4_Click()
If ToggleButton4 = True Then
ActiveWorkbook.ActiveSheet.Range('tout4').Interior.ColorIndex = 6
Else
ActiveWorkbook.ActiveSheet.Range('estan4').Interior.ColorIndex = 40
ActiveWorkbook.ActiveSheet.Range('fabr4').Interior.ColorIndex = 15
End If
End Sub




Antoine
 
Re Eric, Antoine, Pascal

Rapidos... Essaies avec une Boucle (car si tu travailles sur plusieurs feuilles 'Feuil3' ne sera forcément pas celle active, on dirait...)


Private Sub Workbook_Open()
Dim WS As WorkSheet

For Each WS in ThisWorkBook
WS.Protect UserInterfaceOnly:=True
Next

End Sub

Je File

Bonne Soirée
@+Thierry
 
Salut

J´ai beau reessayé avec la boucle de Thierry ds mon classeur.. Cela ne marche pas..
Par contre qd j´insère ma macro ds le sien .. ce la marche..
Preuve quíl y a un truc que j´ai oublié de faire.
C´est peut etre la présence de plusieurs macros sur une meme feuille qui perturbent un peu l´application
J´ai d autres macro sur cette meme feuille dont une qui ne marche pas en mode verouillage egalement...
C´est une macro qui sert à cacher des colonnes en fonction d une variable..Dim z As Variant

z = Range('H17').Value

If z = 2 Then
Columns('a:an').EntireColumn.Hidden = False
Columns('an:bz').EntireColumn.Hidden = True
ElseIf z = 3 Then
Columns('a:bh').EntireColumn.Hidden = False
Columns('bh:bz').EntireColumn.Hidden = True
ElseIf z = 4 Then

Columns('t:BZ').EntireColumn.Hidden = False
Else
Columns('t:bz').EntireColumn.Hidden = True
End If

Error 1004 IMposible d asigner la propriété HIDDEN de la classe RAnge

Merci pour les tentatives de résolution

Antoine
 
Bonjour Antoine (ou Eric), Pascal, le Forum

Je n'ai pas trop de temps pour assumer le suivi de cette question.

Pour autant que j'ai testé, la méthode Hide est acceptée sur des Feuilles Protégée avec l'Argument 'UserInterfaceOnly:=True'.

Pour autant que je sache, plusieurs macros pourraient fonctionner sur plusieurs feuilles si tu as bien compris le processus. Toutefois certaines Actions ne sont pas permises sur feuille protégée même avec l'Argument 'UserInterfaceOnly:=True'.... Mais donc pas 'Hide' de colonne...

Pour autant que celà fonctionne uniquement (J'insiste sur ce Point) lorsque la feuille est protégée de cette manière par VBA et nom manuellement.

Pour autant également que tu appliques cette Protection par VBA à chaque ouverture du Classeur (car ceci est Volatile)

Sinon relis encore le lien que j'ai mis car j'ai expressément regroupé les explication de Frédérique Sigonneau et Laurent Longre, afin d'éviter cette incompréhension sur cette méthode.

Sinon et bien, c'est que tu as un autre souci, comme par exemple que tu ne travailles pas sur la feuille souhaitée, car dans ta macro, aucune feuille n'est spécifiée...

Si vraiment tu n'y arrives pas, appliques alors la méthode de Pascal, qui, quoique qu'un peu plus lourde, fonctionnera tout aussi bien...

Bon Après Midi
@+Thierry
 
Bonjour Thierry

Grâce à tes explications et tes links. j´ai pu comprendre le rôle qu´avait UserINterfaceOnly... Comme dans l´aide de VBA, j´avais rien trouvé je continuais à la verouiller manuellement et c´est ca qui tout bloqué ..
Après avoir lu tes links, tout m´ a paru beaucoup plus clair..

Qu´est ce que je ferai ss ce forum.. C´et vraiment une des meilleures choses que j´ai pu rencontré en naviguant sur le net..

Bravo à toi et toute l´équipe d´experts
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

E
Réponses
3
Affichages
2 K
Emmanuel_3005
E
J
Réponses
2
Affichages
611
J
Retour