Limiter un nombre d'ouverture du fichier (version essai)

Bonjour, j'aimerai produire un fichier Excel en "version d'essai" et le limiter :

en nombre "d'ouverture" ou

en nombre de saisie ou

un message à l'ouverture limitante.

Comment faire cela.

Merci.

Bonjour,

Je ne sais pas trop ce que vous souhaitez réellement faire et malgré le manque de précisions dans votre demande, ci-joint avec une feuille PARAM en affichage xlverryhidden permettant l'ouverture du fichier 2 fois maximum et le code dans ThisWorkbook :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Worksheets("PARAM")
    If .[B1] = .[B2] Then
        MsgBox "Attention dernière fermeture possible du fichier", vbCritical
        .[B1] = 3
        ThisWorkbook.Save
    End If
End With
End Sub

Private Sub Workbook_Open()
With Worksheets("PARAM")
    Select Case .[B1]
        Case Is > .[B2]
        MsgBox "Vous ne pouvez plus accéder à ce fichier", vbCritical
        ThisWorkbook.Close True
        Case Is = .[B2] - 1
        MsgBox "Attention dernière ouverture possible du fichier", vbCritical
        .[B1] = .[B1] + 1
        ThisWorkbook.Save
        Case Else
        .[B1] = .[B1] + 1
        ThisWorkbook.Save
    End Select
End With
End Sub

Et le fichier joint.

Cdlt,

95autodestr-2.xlsm (15.94 Ko)

Merci pour votre réponse,

L'idée c'est de donner le logiciel (excel vba) en version d'essai.

Votre solution est une bonne idée. Comment augmenter le nombre d'ouverture à + de 2?

il faudrait pouvoir aussi avoir une possibilité de limiter par une date de début et de fin d' utilisation.

Merci encore.

Bonjour,

Dans ce cas il faudrait comparer dès le début de la boucle les dates :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Worksheets("PARAM")
    If .[B1] = .[B2] Then
        MsgBox "Attention dernière fermeture possible du fichier", vbCritical
        .[B1] = 3
        ThisWorkbook.Save
    End If
End With
End Sub

Private Sub Workbook_Open()
With Worksheets("PARAM")
    If Date > .[B4] Or Date < .[B3] Then MsgBox "Vous ne pouvez plus accéder à ce fichier, la période ne couvre pas aujourd'hui", vbCritical: ThisWorkbook.Close True
    Select Case .[B1]
        Case Is > .[B2]
        MsgBox "Vous ne pouvez plus accéder à ce fichier", vbCritical
        ThisWorkbook.Close True
        Case Is = .[B2] - 1
        MsgBox "Attention dernière ouverture possible du fichier", vbCritical
        .[B1] = .[B1] + 1
        ThisWorkbook.Save
        Case Else
        .[B1] = .[B1] + 1
        ThisWorkbook.Save
    End Select
End With
End Sub

Il faudra penser à protéger le code VBA. Mais des petits malins trouveront toujours de quoi contourner les sécurités ... Dans ce cas il faudrait mieux avoir une feuille vierge en xlvisible , et afficher les autres feuilles en xlvisible que si les conditions sont respectées, sinon les laisser en xlverryhidden.

Cdlt,

49autodestr-3-1.xlsm (16.34 Ko)

ok merci

Bonjour,

tenir compte qu'on peut ouvrir un fichier sans lancer les macros.
Toute protection par macro reste illusoire.
eric

Rechercher des sujets similaires à "limiter nombre ouverture fichier version essai"