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 :

ActiveSheet.Unprotect, mais que fais Excel ?!? [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut ActiveSheet.Unprotect, mais que fais Excel ?!?
    Bonjour à tous,

    Comme l'indique le titre du post, j'aimerais comprendre ce que fais Excel (il fait surement ce que je lui demande mais je trouve ça bizarre).

    J'ai dans un classeur test écris les fonctions suivantes :
    • construire_t qui construit un tableau avec les 26 lettres de l'alphabet en minuscule et en majuscule ainsi que les nombres de 0 à 10.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function construire_t() As Variant
        construire_t = Array("", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", _
            "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", _
            "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
    End Function
    • chaine_alea qui construit une chaine de caractères avec les caractères présent dans le tableau que construit la fonction précédant.

    La longueur de cette chaine est passée en paramètre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function chaine_alea(i As Long) As String
        Dim t:    t = construire_t()
        Randomize
            Dim j&, k&
                For k = 1 To i
                    chaine_alea = chaine_alea & t(Application.WorksheetFunction.RandBetween(0, 62))
                Next k
    End Function

    Ensuite je protège la feuille active avec un Password aléatoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub protec()
        Dim mdp$: mdp = chaine_alea(3)
        ActiveSheet.Protect Password:=mdp
        MsgBox mdp
    End Sub

    Le but maintenant et d'ôter la protection de la feuille.
    Je boucle bêtement sur tous les Password possible et sors de la boucle si la feuille est déverrouillée en affichant le Password qui a déverrouillé la feuille :
    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
    Sub unprotec()
        Dim t:    t = construire_t()
            Dim i&, j&, k&
                On Error Resume Next
                For i = 0 To 62
                    For j = 0 To 62
                        For k = 0 To 62
                            ActiveSheet.Unprotect Password:=t(i) & t(j) & t(k)
                            If Not ActiveSheet.ProtectContents Then
                                MsgBox t(i) & t(j) & t(k)
                                Exit Sub
                            End If
                        Next k
                    Next j
                Next i
    End Sub
    Le problème est là, en fait quand je verrouille la feuille j'ai un MsgBox qui me dit avec quel Password, lorsque je déverrouille, j'affiche aussi le Password qui a déverrouille.
    Mais ce n'est pas le même

    Si quelqu’un sait pourquoi j’ai cette différence, je suis très curieux de savoir

    Merci d’avance pour votre intérêt
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  2. #2
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

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

    Sans avoir approfondi la question, j'ai constaté qu'Excel doit utiliser un système de hashing simplifié.
    En d'autres termes, pour un password de protection, il en existe plusieurs pour déprotéger.
    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!

  3. #3
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, le terme de hashing est impropre .... à titre documentaire, regarde aussi ici

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Indépendamment de savoir si hachage est le terme qui convient,

    Excel opère une moulinette qui transforme le passeword en un code indéchiffrable.

    Quand tu veux déverrouiller tu rentre a priori li même passeword et la même moulinette te retourner le même code.

    Prenons le hachage md5 il convertir un text de 1,lettre ou un roman de 1000 page en un code de 13 caractères! Tu te doute bin que plusieurs types texte donneront me même résultat.

  5. #5
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjours à tous,

    AlainTech, rdurupt merci pour vos explications, j'ai encore appris quelque chose grâce à ce forum et c'était le but de ce post.
    Je vais faire un peu de lecture en suivant tes liens kiki29.

    Encore merci et bonne journée à vous.
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Salut Antony,

    On considère que c'est résolu?
    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!

  7. #7
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    L'idée n'était pas réellement de résoudre un problème, ou alors peut être celui de ma curiosité qui me fait me poser plein de questions, et franchement j'espère que ce problème ne sera jamais résolu

    Pour ce qui est de vos explications encore merci, je passe en
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

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

Discussions similaires

  1. Réponses: 102
    Dernier message: 17/03/2005, 19h32
  2. mais que fait upper_range() dans un multimap?
    Par porcher dans le forum C++
    Réponses: 7
    Dernier message: 18/02/2005, 22h21
  3. Commencer dans la programmation mais que choisir ?
    Par Invité dans le forum Débuter
    Réponses: 19
    Dernier message: 21/12/2004, 12h10
  4. visual c++ mais que pour winCE
    Par julienx dans le forum MFC
    Réponses: 2
    Dernier message: 10/11/2004, 19h25
  5. Mais que fait static ???
    Par elsargento dans le forum C
    Réponses: 4
    Dernier message: 25/09/2003, 09h55

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