Macro ferme classeur si date > et si mot de passe faux

Bonjour à tous,

J'ai besoin d'aide sur une macro que je n'arrive pas à effectuer.

J'aimerai rendre le classeur inutilisable si la personne qui l'ouvre ne renseigne pas le mot de passe, mais que le mot de passe se déclenche passé une certaine date. Ça permet aux utilisateurs du classeur de pas avoir à saisir un mot de passe à chaque ouverture, mais une fois par an passée la date indiqué dans la macro, le mot de passe est demandé (à ce moment je changerai la date). Cela me permet de mettre a disposition un fichier qui ne sera disponible qu'un certain temps.

Je ne sais pas si j'ai été très clair, en tout cas voici ma macro ;

Private Sub Auto_Open()

Application.DisplayAlerts = False

If Date > CDate("01/12/2016") Then

Dim resultat As String

resultat = InputBox("Durée d'utilisation du fichier dépasser, veuillez renseigner le mot de passe ou contacter votre administrateur", "ALERTE")

If resultat <> "mot de passe" Then

End If

ActiveWorkbook.Close

Application.DisplayAlerts = True

End If

End Sub

Merci d'avance pour votre aide

Christophe

edit :

Je ne sais pas si mon explication initiale était suffisante, pour faire simple, j'aimerai que le fichier soit inutilisable après le 01/12/2016 par exemple, a moins que l'on n'entre le mot de passe dans la message box

Si on ne renseigne pas le mot de passe, tout disparaît, comme dans ma macro, sauf que je n'arrive pas a faire en sorte que si on rentre le bon mot de passe le fichier s'ouvre, quand je renseigne le mot de passe avec le code actuel le fichier se ferme quand meme.

Bonjour,

Voici une solution qui à l'air de fonctionner chez moi :

Private Sub Workbook_Open()

Application.DisplayAlerts = False
Dim resultat As String

With Sheets("Feuil1")
    If .Range("B1").Value <> "" Then
        If .Range("B2").Value < Date Then
            resultat = InputBox("Durée d'utilisation du fichier dépasser, veuillez renseigner le mot de passe ou contacter votre administrateur", "ALERTE")
            If resultat <> "azer" Then
                ActiveWorkbook.Close
                Else
                    .Range("B1").Value = Date
                    Exit Sub
            End If
        End If
        Else
            resultat = InputBox("Durée d'utilisation du fichier dépasser, veuillez renseigner le mot de passe ou contacter votre administrateur", "ALERTE")
            If resultat <> "azer" Then
                ActiveWorkbook.Close
                Else
                    .Range("B1").Value = Date
            End If
    End If
End With

Sheets("Feuil1").Visible = xlSheetVeryHidden

End Sub

avec une "Feuil1" Avec A1 = "Date de saisie mdp" et A2 = Date limite

En B1, la date de saisie du mdp va venir s'y mettre et en B2 = B1+365 (Soit un an après)

B1 et B2 en format Date évidemment.

PS :

Sheets("Feuil1").Visible = xlSheetVeryHidden
'ou 
Sheets("Feuil1").Visible = xlSheetHidden 'si tu veux pouvoir l'afficher par la suite

A plus !

Merci pour cette macro,

Je ne comprend pas la "Feuil1" Avec A1 = "Date de saisie mdp" et A2 = Date limite.

Si je veux pouvoir utiliser le fichier tout au long de l'année 2017, et qu'a partir de 2018, il me faut un mot de passe pour ouvrir le classeur, que dois-je indiquer dans les cellules ?

Je ne sais pas si mon explication initiale était suffisante, pour faire simple, j'aimerai que le fichier soit inutilisable après le 31/12/2016 par exemple, a moins que l'on n'entre le mot de passe dans ma message box

Si on ne renseigne pas le mot de passe, tout disparaît, comme dans ma macro, sauf que je n'arrive pas a faire en sorte que si on rentre le bon message, il ne se passe rien et que le fichier reste accessible.

Cela veut dire qu'il faut une page vierge nommé "Feuil1" dans mon exemple.

En A1 vous écrivez "Date de saisie" dans la cellule, en A2 vous écrivez "Date limite", ce n'est qu'a titre indicatif pour se repérer.

En B1, vous ne faites rien, la cellule va se remplir avec la date du jour de saisie du mot de passe.

En B2, à vous de mettre la date limite qui vous convient ! Dans mon exemple, pour une date limite 1 an après la date de saisie du mdp, il faut mettre B1+365, mais vous pouvez tout autant mettre une date fixe et la modifier quand vous le souhaitez. Pour cela il faudra changer le VeryHidden par Hidden dans la macro afin de pouvoir accéder à la feuille.


Christrucci a écrit :

Je ne sais pas si mon explication initiale était suffisante, pour faire simple, j'aimerai que le fichier soit inutilisable après le 31/12/2016 par exemple, a moins que l'on n'entre le mot de passe dans ma message box

Si on ne renseigne pas le mot de passe, tout disparaît, comme dans ma macro, sauf que je n'arrive pas a faire en sorte que si on rentre le bon message, il ne se passe rien et que le fichier reste accessible.

Dans ce cas, il suffit de mettre la date "31/12/2016" dans B2 de la "Feuil1" (ou autre si vous la renommer).

Ok j'ai compris,

Je me suis permis de saisir en C2 la date limite d'utilisation du fichier, j'ai mis 01/12/2016 pour essayer,

j'ai modifier les B2 par C1 dans la macro (car j'ai déjà des informations dans la cellule B2), donc comme la date du jour est plus grande, le fichier aurai du me demander le mot de passe à l'ouverture, mais il ne s'est rien passé !

Est-ce que vous pourriez lire ma macro posté initialement, elle fonctionnais mais après avoir saisie le mot de passe le fichier se vérouillais quand même, j'ai du merdé sur les if et End if

Merci bien

Autant pour moi, Dans ce cas j'imagine que c'est uniquement du au fait que votre

ActiveWorkbook.Close

est en dehors du

If resultat <> "mot de passe" Then

End if

Et donc ferme le fichier quoiqu'il arrive.

Ahaha je m'en doutais que j'avais merdé!

Ca marche nickel ! Merci beaucoup

Pas de soucis.

Braters a écrit :

Pas de soucis.

Une dernière question, est-ce possible de faire en sorte que la box affiche des ****** a la place du mot de passe quand ont le tape ?

Avec un InputBox cela devient compliqué. Cependant, tu peux toujours passer par un Userform et un TextBox, dans ce cas, la solution est plus facile à mettre en place.

Hello,

Je vais peut être ouvrir un vieux post, mais la solution proposée ici m’intéresse.

J'ai bien suivi les consignes de braters le seul hic c'est que je ne comprends pas trop où il définit le mot de passe du fichier excel.

Une idée? Dois-je d'abord protéger mon fichier par mot de passe puis ensuite utiliser la macro? Je ne parviens pas à comprendre.

D'avance merci;

Bonjour,

Le mot de passe se situe dans la macro, il s'agit de "azer".

Dans la ligne

resultat <> "azer"

Bien sur tu peux adapter le mot de passe. Le mettre dans une cellule par exemple B3 de la Feuil1 (qui est cachée dans ma macro)

Puis mettre une ligne

MDP = Sheets("Feuil1").Range("B3") 'au dessus de With ...

Puis remplacer les "azer" par MDP pour obtenir

resultat <> MDP

En pensant à renseigner B3 avant bien sur !

Si tu as d'autres questions n'hésite pas.

A plus !

Bonjour à tous,

désolé de ressortir encore un si vieux dossier mais est-il possible d'avoir un fichier excel exemple ?

Je n'aurais plus qu'à modifier la date pour faire l'essai et ainsi je pourrais incorporer le code dans un de mes tableau.

Merci beaucoup !

Bonjour,

Voici un fichier exemple.

A plus !

Rechercher des sujets similaires à "macro ferme classeur date mot passe faux"