Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1730 connectés 

 



 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Macro Excel : Accès restreint par onglet suivant utilisateur

n°2315301
dje69r
Arme de distraction massive
Posté le 15-05-2018 à 09:31:56  profilanswer
 

Reprise du message précédent :
Et tu as quoi de surligné dans le code ?
Les deux lignes que tu as mises en rouge ?


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
mood
Publicité
Posté le 15-05-2018 à 09:31:56  profilanswer
 

n°2315305
liln
Posté le 15-05-2018 à 09:52:37  profilanswer
 

oui exact

n°2315306
liln
Posté le 15-05-2018 à 09:55:33  profilanswer
 

la syntaxe me parait correcte pourtant, j'ai essayé avec des espaces ou sans, sans les parenthèses ou avec, en remplaçant les guillemets par des apostrophes...

n°2315308
dje69r
Arme de distraction massive
Posté le 15-05-2018 à 10:49:55  profilanswer
 

Dans un module VBA, va dans "outils" "references" et regarde si tu n'en as pas un en "MANQUANT" ou si les ref à Excel sont bien présentes


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°2315309
liln
Posté le 15-05-2018 à 10:55:20  profilanswer
 

Dans les references disponibles je n'en ai que 4 de cochées et rien d'autre aprés concernant Excel:
Visual Basic For Applications
Microsoft Excel 14.0 Object Library
OLE Automation
Microsoft Office 14.0 Object Library

n°2315310
liln
Posté le 15-05-2018 à 10:58:57  profilanswer
 

aucun maquant signalé...pfff il y a de quoi devenir fou surtout que je sens  qu'il s'agit certainement de détails

n°2315312
dje69r
Arme de distraction massive
Posté le 15-05-2018 à 12:07:01  profilanswer
 

Bah là
Sur un inputbox en plus
Envoie le fichier ça ira surement plus vite :whistle:


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°2315325
liln
Posté le 15-05-2018 à 16:11:00  profilanswer
 

c'est bon j'ai fini par trouver une solution étonnante: j'ai retapé le code à l'identique à la main après divers tests et plus de message d'erreur. Par contre il ne lance pas ma macro à l'ouverture comme prévu; ci-après le code modifié:
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'on affiche la feuille Vierge
Sheets("Vierge" ).Visible = True
'on planque toutes les autres feuilles sauf Vierge
For x = 1 To ThisWorkbook.Sheets.Count
If Sheets(x).Name <> "Vierge" Then Sheets(x).Visible = xlSheetVeryHidden
Next
--------------------------------------------------------------------------------------------
End Sub
 
Private Sub Workbook_Open()
On Error Resume Next
 
Application.ScreenUpdating = False
'on defini un pointeur
Pointeur = 0
'on affiche la feuille Vierge
Sheets("Vierge" ).Visible = True
'on va dessus
Sheets("Vierge" ).Activate
'on planque toutes les autres
For x = 1 To ThisWorkbook.Sheets.Count
    If Sheets(x).Name <> "Vierge" Then Sheets(x).Visible = xlSheetVeryHidden
Next
'on saisit le user
User = InputBox("Veuillez saisir votre nom d'utilisateur: ", "Utilisateur" )
'on saisit le mot de passe
MDP = InputBox("Veuillez saisir votre mot de passe: ", "Mot de passe" )
 
'TestShu = InputBox ("Veuillez saisir votre mot de passe: ", "Mot de passe" )  
'Derniere ligne du tableau de la feuille DroitsUsers pour boucler dessus
DerLigne = Sheets("DroitsUsers" ).Range("A65536" ).End(xlUp).Row
 
'DerLigne = Sheets("DroitsUsers" ). Range("A65536" ). End(xlUp). Row    
'on boucle pour trouver les occurences, x=2 car je pars du principe que la premiere ligne _
contient les entetes de colonne
For x = 2 To DerLigne
    'si ce qu'il y a dans la colonne1 (Colonne A : user) = le user saisi _
    ET ce qu'il y a dans la colonne2 (Colonne B : mot de passe)
    If Worksheets("DroitsUsers" ).Cells(x, 1) = User And Worksheets("DroitsUsers" ).Cells(x, 2) = MDP Then
        'on affiche la feuille définie en colonne3 (Colonne C : Feuille autorisée)
        'on affiche la feuille correspondante
        FeuilleVisible = Worksheets("DroitsUsers" ).Cells(x, 3)
        Sheets(FeuilleVisible).Visible = True
        '   on va dessus
        Sheets(FeuilleVisible).Activate
        'on se met un pointeur pour voir si on trouve quelque chose, si on ne trouve rien on quitte
        Pointeur = Pointeur + 1
    ElseIf Worksheets("DroitsUsers" ).Cells(x, 1) = "Admin" And Worksheets("DroitsUsers" ).Cells(x, 2) = "LeMDP" Then
        For i = 1 To ThisWorkbook.Sheets.Count
            If Sheets(i).Name <> "Vierge" Then Sheets(i).Visible = True
        Next
    Application.ScreenUpdating = True
    End If
Next
End Sub

n°2315326
liln
Posté le 15-05-2018 à 16:20:51  profilanswer
 

code pas encore nettoyé bien sûr

n°2315327
dje69r
Arme de distraction massive
Posté le 15-05-2018 à 16:27:40  profilanswer
 

Quelle version d'Excel ?
Fichier xlsm ?
Sécurité des macros et emplacements approuvés ?


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
mood
Publicité
Posté le 15-05-2018 à 16:27:40  profilanswer
 

n°2315328
liln
Posté le 15-05-2018 à 16:30:11  profilanswer
 

dje69r a écrit :

Quelle version d'Excel ?
Fichier xlsm ?
Sécurité des macros et emplacements approuvés ?


 
-Excel 2010
-oui Xlsm
-Tout approuvé
je t'ai envoyé le fichier en MP :jap:  
 
 

n°2315331
liln
Posté le 15-05-2018 à 16:42:05  profilanswer
 

sinon le lien


Message édité par liln le 17-05-2018 à 16:53:59
n°2315335
dje69r
Arme de distraction massive
Posté le 15-05-2018 à 17:06:04  profilanswer
 

Ok, vu l'erreur

 

Tout ce qui est Workbook_Open ou BeforeClose etc. ce sont des noms de fonctions réservées
Ces codes ne sont pas à mettre dans Module1 mais dans ThisWorkbook (en dessous de Feuil9) sur la gauche dans la liste des modules

Message cité 1 fois
Message édité par dje69r le 15-05-2018 à 17:09:12

---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°2315336
liln
Posté le 15-05-2018 à 18:11:30  profilanswer
 

dje69r a écrit :

Ok, vu l'erreur
 
Tout ce qui est Workbook_Open ou BeforeClose etc. ce sont des noms de fonctions réservées
Ces codes ne sont pas à mettre dans Module1 mais dans ThisWorkbook (en dessous de Feuil9) sur la gauche dans la liste des modules


 
Mais oui!! en effet!! InputBox à l'ouverture sur du vierge ok!!
 
par contre il m'ouvre quand même toutes les pages quelque soit le user identifié Grrrr!!!

n°2315337
liln
Posté le 15-05-2018 à 18:23:10  profilanswer
 

De plus quand j'annule la demande d'identifiant il m'ouvre toutes les feuilles par défaut et donc sans restriction :cry:

n°2315427
dje69r
Arme de distraction massive
Posté le 17-05-2018 à 16:08:13  profilanswer
 

J't'ai renvoyé ton fichier en mp


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°2315499
patrice337​40
Avec la réponse, c'est facile.
Posté le 21-05-2018 à 00:27:46  profilanswer
 

liln a écrit :

Bonjour je déterre un vieux sujet je sais mais qui correspond parfaitement à mon besoin actuel c-a-d ouvrir des onglets spécifiques selon le user identifié après avoir défini les droits de chacun en amont.
 
j'ai donc généreusement copié le code plus haut mais j'ai encore une erreur de compilation: 2 petites erreurs de syntaxe qui traînent et impossible de mettre le doigt dessus!! HELP
 


 
Mal plutôt que généreusement !
 
Il manque un End If et un End Sub !


---------------
Cordialement, Patrice
n°2315500
liln
Posté le 21-05-2018 à 00:54:00  profilanswer
 

patrice33740 a écrit :


 
Mal plutôt que généreusement !
 
Il manque un End If et un End Sub !


 
Merci vu avec dje69r et ça fonctionne  :jap:  

n°2318501
acualyisdo​lan
Flotte mais jamais ne sombre
Posté le 31-07-2018 à 17:40:30  profilanswer
 

Salut,
Si ça intéresse quelqu'un j'ai fait un système du genre (restriction onglet à base de feuilles de tri). Me MP.
Attention code dégueulasse mais bon, ça marche.  [:acualyisdolan]


---------------
Sondage pharmacien@HFR ici : https://goo.gl/forms/7cIJiIFNm0lKGOfm1
n°2318718
antac
..
Posté le 05-08-2018 à 10:42:44  profilanswer
 

Question con, si les données sont chargées dans tous les fichiers à la base et qu'on ouvre avec Libreoffice ou qu'on désactive les macros... ça donne quoi ?


Message édité par antac le 05-08-2018 à 10:43:04

---------------
CYC12 : Validés :  NFP108 - NFE102 - EiCnam@2015 - NSY115 - NFP107 - NFE107 - CFA109 -  BULATS 3 - TET102 - NFE209 - NFE210 - ENG221 - ENG210. En cours : Mémoire
n°2325360
ph71
Posté le 04-12-2018 à 10:38:52  profilanswer
 

dje69r a écrit :

J't'ai renvoyé ton fichier en mp


 
Bonjour dje69r,
 
Je viens de lire tout ce bon code page 1 et l'adapter pour moi.
Vraiment merci pour ce travail !
 
Mais j'ai le même problème que la personne qui a écrit ceci :
"De plus quand j'annule la demande d'identifiant il m'ouvre toutes les feuilles par défaut et donc sans restriction"
 
Je cherche mais en vain ce qu'il faudrait ajouter pour éviter que si l'utilisateur clique sur annuler sur les 2 imputBox les onglets restent invisibles mis a part la page vierge ou alors que cela me ferme le classeur au 2ème Annuler... aussi le fait que si on met un faux mot de passe, tous les onglets apparaissent. Peut-on sécuriser le classeur en l'obligeant à se fermer ?
Pourriez-vous m'aider svp ?
Merci


Message édité par ph71 le 04-12-2018 à 10:53:37
n°2325464
dje69r
Arme de distraction massive
Posté le 05-12-2018 à 07:24:02  profilanswer
 

Salut ph71
 
Je regarde dans la journée, le lien pour liln a expiré
Tu as pris le code de liln quelques posts plus haut ?


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°2325469
ph71
Posté le 05-12-2018 à 10:35:38  profilanswer
 

dje69r a écrit :

Salut ph71
 
Je regarde dans la journée, le lien pour liln a expiré
Tu as pris le code de liln quelques posts plus haut ?


 
Bonjour,
Oui, c'est ce que j'ai fais.  
Je voudrais t'envoyer le fichier en MP mais je ne sais pas comment faire.
C'est sympa de m'aider.
Merci

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Creation d'utilisateur dans AD via powershell plus..[script batch] accès à la base de registre
[RESOLU][MySQL] calcul suivant le cas ....Acces aux elements d'une iframe
onglet pour forum [Access] Appliquer filtre à un sous formulaire situé dans un onglet
(résolu) Probleme avec IDLE (manque un onglet)Suppression valeur dans registre suivant une chaine de caractère
Protection d'une page permettant l'accès à une base de données sqlAccès instances de classes...
Plus de sujets relatifs à : Macro Excel : Accès restreint par onglet suivant utilisateur


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR