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 :

Ouverture de feuille selon mot de passe


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 67
    Points
    67
    Par défaut Ouverture de feuille selon mot de passe
    Bonjour
    Sur une feuille "parametre" la colonne A2:A20 contient les Mots de passe, la colonne B2:B20 contient le nom des feuilles.
    Les feuilles sont masquées par défaut par Feuille.Visible = xlVeryHidden
    Je souhaiterais afficher la feuille correspondant au mot de passe saisie dans un inputbox.
    j'ai réalisé ce code mais ça bloque sur la ligne 8 "erreur d'exécution '91' variable objet ou variable de bloc With non définie."

    Merci pour votre aide

    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
    Sub AfficheOnglet()
     
        Dim MDP As String
        Dim c As Range
        Dim sh As String  'valeur à trouver dans la colonne B
        MDP = InputBox("Veuillez entrer le mot de passe.")
        Set c = Sheets("parametre").Range("A1:A20").Find(MDP, LookIn:=xlValues, lookat:=xlWhole)
        c.Offset(0, 1).Select 'sélection de la cellule colonne B
        sh = ActiveCell.Value
        Sheets(sh).Visible = True 'afficher la feuille
        If Not c Is Nothing Then
        Sheets(sh).Activate 'activer la feuille
        Set c = Nothing
    Else
       MsgBox "valeur " & MDP & " Invalide"
    End If
     
    End Sub

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour !

    Ta variable c est vide (= Nothing) car la recherche a juste échouée !
    Voir donc l'exemple dans l'aide VBA interne de la méthode Range.Find

    P'tit rappel :   sélectionner une cellule n'est pas nécessaire pour lire son contenu.

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Bonjour !

    Ta variable c est vide (= Nothing) car la recherche a juste échouée !
    Voir donc l'exemple dans l'aide VBA interne de la méthode Range.Find

    P'tit rappel :   sélectionner une cellule n'est pas nécessaire pour lire son contenu.

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    Merci
    J'ai modifier le code et c'est bon
    @+

    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
    Sub AfficheOnglet()
    On Error Resume Next
    Dim MDP As String, sh As String, i As Long
    With Sheets("parametre")
    MDP = InputBox("Veuillez entrer le mot de passe.")
    For i = 2 To 21
    If .Cells(i, 1) = MDP And .Cells(i, 2) <> "" Then
        sh = .Cells(i, 2).Value
        Sheets(sh).Visible = True 'afficher la feuille
        Sheets(sh).Activate 'activer la feuille
    Exit Sub
    ElseIf i = 21 Then
    MsgBox "Le mot de passe saisi : " & MDP & " est invalide ou non trouvé !", vbCritical, "Erreur"
    End If
    Next i
    End With
    End Sub

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

Discussions similaires

  1. proteger la feuille avec mot de passe
    Par HAMIDOU AMERI dans le forum Excel
    Réponses: 6
    Dernier message: 31/01/2017, 19h58
  2. Ouverture fichier protégé par mot de passe
    Par ederoeck dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/03/2016, 10h17
  3. Afficher certaines feuilles selon mot de passe saisi
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/02/2013, 16h28
  4. Ouverture feuille par mot de passe
    Par danyocean dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/01/2010, 23h43
  5. Ouverture de formulaire par mot de passe.
    Par amaury94270 dans le forum Sécurité
    Réponses: 4
    Dernier message: 19/02/2008, 16h09

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