Bonjour,
A travers l'onglet révision, on peut protéger par mot de pass une feuille Excel ou un classeur. Idem pour un mot de pass sur le code VBA à travers l'onglet développeur. Mais le contournement de ces protections s'avère très facile (méthodes manuelles ou par logiciels) !
Je souhaiterais trouver une parade avec peut-être la piste suivante :
J'ai positionner dans "ThisWorbook" le code suivant
Private Sub Workbook_Open()
'Determinez la date limite dans le format mois / jour / année
If Now() > #9/30/2022# Then
MsgBox "Fin de validité de la licence"
Sleep 3000 'Sleep calcule en millisecondes. Donc Sleep 1000 attendra 1 seconde...
Call DESTRUCTION_FICHIER
Else
MsgBox "Attention le fichier est utilisable jusqu'au 30 septembre 2022."
End If
End Sub
puis dans un module le code
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub DESTRUCTION_FICHIER()
Dim FName As String
Dim Ndx As Integer
With ThisWorkbook
.Save
For Ndx = 1 To Application.RecentFiles.Count
If Application.RecentFiles(Ndx).path = .FullName Then
Application.RecentFiles(Ndx).Delete
Exit For
End If
Next Ndx
.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close SaveChanges:=False
End With
End Sub
Résultat : Si la date de l'ordinateur est supérieure au 30/09/2022, le sub DESTRUCTION FICHIER s'enclenche et supprime la totalité du fichier Excel.
Y-a-t’il un moyen d'enclencher le sub DESTRUCTION FICHIER dès lors qu'une tentative manuelle ou par logicielle serait tentée pour "casser" ou supprimer le mot de pass sur la feuille, ou sur le classeur ou sur les lignes de code VBA ?
Merci pour votre aide
Claude