IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Userform & code d'activation [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut Userform & code d'activation
    Bonjour,

    J'ai créé un Userform qui permet à l'ouverture de mon fichier Excel de :
    1-Sélectionner un utilisateur dans une liste déroulante
    2-D'insérer un code d'accès relier à l'utilisateur
    3-Un bouton de confirmation permettant d'ouvrir le fichier excel

    La liste des utilisateurs et des codes d'accès associés se trouve sur une feuille masquée nommée "utilisateurs".

    1er souci : je voudrais que si une personnene faisant pas partie de la liste autorisée entre son nom, qu'il y ai un msg d'erreur lui indiquant que seule les personnes faisant partie de la liste déroulante sont autorisées à ouvrir la base de données.

    2ème souci : lorsque le mot de passe n'est pas valide, VBA lance un msg de débogage ou de fin et si la personne clique sur Fin, le fichier s'ouvre et donc je n'ai plus de protection.

    3ème souci : Si au lancement du fichier, la personne n'active pas les macros, le fichier s'ouvre sans demander les logins et passwords associés. Il faudrait une commande qui active les macros sans le demander aux utilisateurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Private Sub CommandButton1_Click()
    identification = ComboBox1.ListIndex + 1
     
     
    ' A voir pour la fonction <> qui ne fonctionne pas
    'If TextBox2.Value <> Sheets("utilisateurs").Cells(identification, 2).Value Then
    'MsgBox "Sélectionnez votre identité dans la liste déroulante"
    'End If
     
     
     
    If TextBox2.Value = Sheets("utilisateurs autorises").Cells(identification, 2).Value Then
    MsgBox ("Votre code est correct " & ComboBox1.Text)
    Me.Hide
    Else
    Select Case MsgBox(ComboBox1.Text & "  votre mot de passe est erronné", vbAbortRetryIgnore + vbCritical, "Centre d'identification du personnel autorisé")
    Case vbAbort
    'procédure si click sur Abandonner
    Unload Me
        ThisWorkbook.Close savechanges:=False
    Case vbRetry
    'procédure si click sur Réessayer
    Case vbIgnore
    'procédure si click sur Ignore
    If CloseMode = vbFormControlMenu Then
    MsgBox (ComboBox1.Text & ", pour des raisons de sécurité, cette commande est désactivée. Veuillez Réessayer ou Ignorer.")
    Cancel = True
    End If
    End Select
    End If
    End Sub
     
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
     
    ' désactive la croix en haut a droite du Userform
        If CloseMode = vbFormControlMenu Then
            MsgBox "Pour des raisons de sécurité, cette commande est désactivée."
            Cancel = True
       End If
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    1er souci : je voudrais que si une personne faisant pas partie de la liste autorisée entre son nom, qu'il y ai un msg d'erreur lui indiquant que seule les personnes faisant partie de la liste déroulante sont autorisées à ouvrir la base de données.

    2ème souci : lorsque le mot de passe n'est pas valide, VBA lance un msg de débogage ou de fin et si la personne clique sur Fin, le fichier s'ouvre et donc je n'ai plus de protection.
    Protège le classeur et donne le mot de passe seulement aux personnes autorisées.

    3ème souci : Si au lancement du fichier, la personne n'active pas les macros, le fichier s'ouvre sans demander les logins et passwords associés. Il faudrait une commande qui active les macros sans le demander aux utilisateurs.
    Ce n'est pas possible et heureusement !

    Hervé.

  3. #3
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Bjr,

    Je ne peux pas protéger le classeur car chacun doit avoir un password différent (nous avons certaines normes et conventions).

    Sinon pour mon 3ème souci , y doit bien avoir une astuce vba pour activer automatiquement les macros a l'ouverture ?

  4. #4
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par graphikris Voir le message
    Bjr,

    Je ne peux pas protéger le classeur car chacun doit avoir un password différent (nous avons certaines normes et conventions).

    Sinon pour mon 3ème souci , y doit bien avoir une astuce vba pour activer automatiquement les macros a l'ouverture ?
    Bonjour.

    L'astuce?
    je me demandes...
    Private Sub Workbook_Open(), Une fonction personnalisée dans une cellule de feuille avec l'instruction Application.EnableEvents......
    Peuvent-être désactivé avec la touche SHIFT appuyée à l'ouverture du classeur ou pire dans les paramètres relatives à la sécurité des macros. encore HEUREUSEMENT.

    la suggestion de Theze Protège le classeur. Tu pourras ensuite décider de la gestion supplémentaire par VBA en fonction des utilisateurs

    Les fonctionnalités de Sécurité présent dans Excel doivent mieux convenir que je te recommande fortement.
    manuellement: à l'enregistrement tu dois outil dans la boîte de dialogue d'enregistrement pour faire la protection.
    Après avoir protégé le classeur pour lecture écriture avec différents mots de passe pour ceux qui ne doivent que lire, ou lire/écrire


    1: Protège chaque feuille avec un mot de passe personnel.
    2.Permettre la modification de Plage (ALT+R+PM), dans cette partie tu as même un bouton Autorisations d'accès qui te permet d'aller plus loin dans tes paramètres de sécurité.

    Cordialement.

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Dis-toi bien qu'une solution de sécurité à base de VBA est illusoire. Il est très facile de faire sauter le mot de passe d'un code protégé.

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Une astuce couramment utilisée est de cacher (xlVeryHidden) toutes les feuilles sauf une.
    Sur cette feuille, on explique que le classeur ne peut pas être ouvert avec les macros désactivées.

    Si les macros sont activées, gérer l'affichage des différentes feuilles en fonction des paires Login/Password.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code pour activer 2 requetes a la fermeture de la base
    Par Bernard67 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 12/09/2008, 16h46
  2. Problème de code d'activation
    Par cmoi_doudi dans le forum Sécurité
    Réponses: 4
    Dernier message: 16/06/2008, 21h36
  3. Réponses: 8
    Dernier message: 20/12/2007, 19h44
  4. Réponses: 4
    Dernier message: 29/10/2007, 10h35
  5. code pour activer javascript
    Par richton95 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/03/2006, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo