Masquer une feuille et la rendre inaccessible

  • Initiateur de la discussion Initiateur de la discussion matiousky
  • 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 !

Re : Masquer une feuille et la rendre inaccessible

Bonsoir, merci de ton aide j'ai changé mon code selon ce que tu m'as conseillé mais ca ne merche toujours pas. Voici mon code:

Private Sub ComboBox1_Change()
For i = 2 To 5
With Sheets("Simulation").DrawingObjects("Bouton " & i)
If .Text = ComboBox1.Value Then
.Characters.Font.Bold = True
.Characters.Font.ColorIndex = 9
Else
.Characters.Font.Bold = False
.Characters.Font.ColorIndex = 0
End If
End With
Next
End Sub

Merci de votre aide,
Mat
 
Re : Masquer une feuille et la rendre inaccessible

Voila j'ai modifier mais ca ne marche toujours pas désolé. Voici le code:

Private Sub ComboBox1_Change()
For i = 2 To 5
With Sheets("Simulation").DrawingObjects("Bouton " & i)
If .Text = ComboBox1.Value Then
.Font.Bold = True
.Font.ColorIndex = 9
Else
.Font.Bold = False
.Font.ColorIndex = 0
End If
End With
Next
End Sub

Merci de votre aide,
Mat
 
Re : Masquer une feuille et la rendre inaccessible

re:

attends bouge pas, tu travailles sur un bouton ? j croyais que c'etait une cellule

ds mi tu peux acceder manuellement à ta form, j'arrive pas à identifier le type de forme que tu utilise.

tu enregistre une macro et tu fais les manipulations désirées, voire un max sur cette forme
une fois terminé, tu vois le resultat de ta macro

excuse moi encore de t'avoir induit en erreur, j'ai mal lu, j'ai regarde les ordres font et pas le with
 
Dernière édition:
Re : Masquer une feuille et la rendre inaccessible

Oui je bosse sur des boutons,

j'ai 4 boutons, dans une liste déroulante j'ai 4 choix (choix associés aux boutons).
Je veux que lorsque je selectionne 1 choix dans la liste, le bouton associé devienne en gras, dans une certaine couleur.

Ce code marche très bien:

Private Sub ComboBox1_Change()
For i = 2 To 5
With Sheets("Simulation").DrawingObjects("Bouton " & i)
If .Text = ComboBox1.Value Then
.Characters.Font.FontStyle = "Gras"
.Characters.Font.ColorIndex = 9
Else
.Characters.Font.FontStyle = "Normal"
.Characters.Font.ColorIndex = 0
End If
End With
Next
End Sub

Cependant j'ai voulu protéger mes boutons (éviter que d'un simple clic droit on puisse par exemple changer le nom du bouton...) grace à ce code:

ActiveSheet.Protect Password:="dima", Contents:=True, userInterfaceOnly:=True, DrawingObjects:=True

Cependant "DrawingObjects:=True" fait buguer mon premier code.

Voila mon problème !!!!!!

Merci,
Mat
 
Re : Masquer une feuille et la rendre inaccessible

Y a-t-il une sécurité absolue?... Une cryptographie irréversible, un jeu de cache-cahe tordu?

Le xlVeryHidden a l'avantage de ne pas éveiller les soupçons sauf pour celui qui va droit dans VBE.

Le verrouillage par mot de passe est efficace, pour peu qu'on y mette de la complexité dans le mot de passe.

On peut s'amuser à mettre une macro qui ne facilite pas l'accès:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

Set feuilleVerrouillee = ThisWorkbook.Worksheets("Feuil3")
Set feuilleCle = ThisWorkbook.Worksheets("Feuil1")
If feuilleCle.Range("Cle").Value = "Open" Then Exit Sub
feuilleVerrouillee.Visible = 2

End Sub

Ca énerve... (il faut connaître la clé qui peut être cacher derrière un Bitmap pour faire beau) On peut aussi prendre l'option d'écrire un code assez banal, mais dont une des fonctions appelées ressemble à s'y méprendre à une fonction VBA, alors qu'elle clôture systématiquement la feuille à cacher.

La sécurité est souvent une succession de barrières pour décourager plutôt q'une solution unique prétendue efficace. Si l'exemple ci-dessus est facile le suivant n'éveille pas forcément les soupçons.

Dans la feuille à cacher mettre le code suivant pour l'évènement activate:

Private Sub Worksheet_Activate()

Set feuilleBidon = ThisWorkbook.Worksheets("Feuil2")

feuilleBidon.Range("A1") = Now()

End Sub

Inoffensif au premier abord... Si dans feuil2 (ou pire, ailleurs) on génère un calcul par raport à la valeur de "A1" précédemment mise à jour avec now() on déclenche un évènement Calculate dans lequel il suffira de placer le 1er code indiquer ci-dessus.

A vous d'imaginer... mais évidemment rien d'absolu, juste un cache-cache qui déroute le débutant ou l'utilisateur moyen.
 
Dernière édition:
Re : Masquer une feuille et la rendre inaccessible

re:

de toute facon un verouillage de feuille ne sert, pour moi seulement pour eviter une erreur de saisie sur des cellule sensibles

un simple copiercoller pete le verrou

Private Sub ComboBox1_Change()
ActiveSheet.unProtect Password:="dima"
For i = 2 To 5
With Sheets("Simulation").DrawingObjects("Bouton " & i)
If .Text = ComboBox1.Value Then
.Characters.Font.FontStyle = "Gras"
.Characters.Font.ColorIndex = 9
Else
.Characters.Font.FontStyle = "Normal"
.Characters.Font.ColorIndex = 0
End If
End With
Next
ActiveSheet.Protect Password:="dima", Contents:=True, userInterfaceOnly:=True, DrawingObjects:=True
End Sub

donc la soluce : deprotection de la feuille, traitement, reprotection
 
- 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

Discussions similaires

Réponses
6
Affichages
236
Retour