[RESOLU] Message quand bouton de naviguation est désactivé

scoubidou35

XLDnaute Occasionnel
Bonjour,

Dans mon fichier, j'ai une page sommaire avec des boutons avec un lien hypertexte pour naviguer.

Ma première question est : est-il possible de cacher l'adresse du lien qui apparait quand on pointe sur le bouton?

Ma seconde question est : Il y a possibilité avec l'onglet MEMBERS de sélectionner les pages qu'on autorise d'accès au personne. Et quand on retourne sur la page "Sommaire" les bontons avec un lien hypertexte sur une page non autorisé sont bloqué. Mais je n'arrive pas à mettre un message qui apparaitrait quand la personne tente en cliquant dessus. J'aimerai avoir un message "Vous n'avez pas accès à cette page, veuillez contacter l'admin".

Pour entrer dans le fichier :
admin = 1234
demo = 5678

Je reste disponible pour informations complémentaires.
Merci
 

Pièces jointes

  • CLASSEUR PROTEGE - version2.3.xlsm
    69.1 KB · Affichages: 26

scoubidou35

XLDnaute Occasionnel
Bonjour à tous,
J'espère que le Père Noël vous a bien gâté cette année !!!!
Je suis toujours sur mon problème et je n'ai toujours pas trouvé de solution :-(
Est ce que du fait que les boutons avec les liens hypertext sur la page "SOMMAIRE" soient des formes cela me rends impossible de mettre un message d'information quand le liens est bloqué (car non autorisé)?
J'ai pensé intégré une ligne msgbox dans le code LOGIN dans la zone ou j'indique que si dans la feuille "MEMBERS" il y a une croix alors la feuille est autorisé à être visible et qu'elle est invisible sur pas de croix. Mais j'ai pas réussi non plus mais je pense que je ne code pas correctement.
Si quelqu'un a une solution je suis preneur.
Merci
 

job75

XLDnaute Barbatruc
Bonjour scoubidou35, le forum,
Ma première question est : est-il possible de cacher l'adresse du lien qui apparait quand on pointe sur le bouton?
Code:
Sub MasquerLiens()
Dim w As Worksheet, s As Shape
On Error Resume Next
For Each w In Worksheets
    For Each s In w.Shapes
        s.Hyperlink.ScreenTip = " "
Next s, w
End Sub
Pour le reste je n'ai pas trop cherché à comprendre.

A+
 

scoubidou35

XLDnaute Occasionnel
Bon j'ai essayé plein de truc que j'ai trouvé sur internet et rien ca ne fonctionne toujours pas. J'espère qu'un pro pourra m'aider

A priori lorsqu'un lien hypertexte est lié à un bouton forme on peut également lui affecter (au bouton) une macro.
j'ai donc essayé de faire une macro qui quand on click sur le bouton forme (j'ai utilisé shape) et que l'onglet n'ai pas visible (cela indique que la personne sur le fichier n'a pas les droits d'accès sur cette feuille) alors un message informatif s'affiche "vous n'avez pas accès à cette feuille. Veuillez contacter vos administrateur".

Exemple dans le fichier si l'onglet "PERSONNEL" n'est pas affiché. Dans la feuille "SOMMAIRE", j'ai le bouton "PERSONNEL" mais si je clique dessus rien ne se passe car le lien hypertexte est désactivé du fait que la feuille "PERSONNEL" est supercaché. Mais j'aimerai que si la personne persiste et clique sur le bouton alors là un message informatif apparait.

Merci à ceux qui pourront m'aider car là je sèche complètement.
 

job75

XLDnaute Barbatruc
Bonjour scoubidou35,

Mettre des liens hypertextes sur les boutons ne paraît pas une bonne idée.

Car l'activation de ces liens ne crée pas d'évènement, donc ne permet pas d'exécuter une macro.

Laissez ces boutons tranquilles et affectez-leur simplement une macro pour activer les feuilles.

A+
 

job75

XLDnaute Barbatruc
Re,

Donc supprimez les liens hypertextes des boutons et affectez-leur cette macro :
Code:
Sub BoutonOnAction()
Dim s As Object
On Error Resume Next 'facultatif, si la feuille n'existe pas
Set s = Sheets(ActiveSheet.DrawingObjects(Application.Caller).Text)
If Not s Is Nothing Then If s.Visible = xlSheetVisible Then _
    s.Activate Else MsgBox "Vous n'avez pas accès à cette page, veuillez contacter l'administrateur."
End Sub
A+
 

scoubidou35

XLDnaute Occasionnel
Bon, ca continue, mon chef m'a demandé s'il était possible que les personnes enregistrées dans "MEMBERS" sous role "VISITEUR" puisse avoir accès à leur feuilles mais en lecture seul avec interdiction de modifier le doc, ni d'enregistrer, ni de copier.

Dans la feuille "LOGIN" J'ai essayé avec le code suivant:
With sheets("MEMBERS")
if role = "visiteur" then
activeworksheet.readonly = true
Msgbox "Vous êtes en lecture seule"


Mais ça ne fonctionne pas.
merci
 

job75

XLDnaute Barbatruc
Bonjour scoubidou35,
Bon, ca continue, mon chef m'a demandé s'il était possible que les personnes enregistrées dans "MEMBERS" sous role "VISITEUR" puisse avoir accès à leur feuilles mais en lecture seul avec interdiction de modifier le doc, ni d'enregistrer, ni de copier.
1) Dans le code de la feuille LOGIN :

- placez juste après Option Explicit l'instruction Public role As String pour mémoriser la variable

- supprimez Dim role as String dans la 1ère macro.

2) Dans ThisWorkbook placez cette macro :
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If LCase(role) = "visiteur" Then Cancel = True
End Sub
Pour un visiteur l'enregistrement du fichier est rendu impossible.

Sachez cependant que sur Excel les protections peuvent être très facilement contournées...

A+
 

scoubidou35

XLDnaute Occasionnel
Bonjour job75

J'ai fait comme tu as dis.
-placez juste après Option Explicit l'instruction Public role As String dans LOGIN
- supprimez Dim role as String (dans la 1ère macro) j'ai effacé la ligne dans le module 1 et dans la feuille LOGIN .
-Copier la macro dans ThisWorkBook
Mais quand je test avec le compte demo password 5678 et que je mets une donnée dans par exemple la feuille BD et que je quitte. L'enregistrement se fait.
je joins mon fichier pour controler.
A+
 

Pièces jointes

  • CLASSEUR PROTEGE - version2.4.xlsm
    217.3 KB · Affichages: 11

Statistiques des forums

Discussions
312 206
Messages
2 086 201
Membres
103 156
dernier inscrit
Ludo94130