Bonjour,
Je voudrai faire un petit programme pour que mon fichier=20
ne soit pas ouvert plus de 5 fois sur un autre ordinateur=20
en utilisant la base de registre:
if Application.OrganizationName <> "FR"
cpt =3D GetSetting(appname:=3D"LFO_APP", _
section:=3D"nom du fichier", key:=3D"1")=20
SaveSetting "LFO_APP", "GestPlanningCondi", "1", 5=20
End If
If cpt <=3D 0 Then
...
J'ai essay=E9 de la fa=E7on que j'ai d=E9crite au dessus mais=20
cela ne fonctionne pas correctement.
existe t-il un exemple?
Merci de me r=E9pondre.
Silene
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas B.
Salut,
Voici un exemple qui compte et autorise 5 ouvertures du fichier si l'organisation n'est pas FR :
Private Sub Workbook_Open() If Application.OrganizationName = "FR" Then Exit Sub
Dim WSH As Object Dim N As Integer Dim Entree As String
Set WSH = CreateObject("WScript.Shell") Entree = "HKCUSoftwareMPFEClasseur.xls"
On Error GoTo LaBas N = WSH.RegRead(Entree) On Error GoTo 0
If N >= 4 Then ThisWorkbook.Close
WSH.RegWrite Entree, N + 1
Exit Sub LaBas: WSH.RegWrite Entree, 0 End Sub
Par contre, la méthode n'est pas infaillible : on pourra toujours empêcher l'exécution des macros sur le fichier, et donc empêcher la fermeture provoquée.
A+ Nicolas B.
Silene wrote:
Bonjour, Je voudrai faire un petit programme pour que mon fichier ne soit pas ouvert plus de 5 fois sur un autre ordinateur en utilisant la base de registre:
if Application.OrganizationName <> "FR" cpt = GetSetting(appname:="LFO_APP", _ section:="nom du fichier", key:="1") SaveSetting "LFO_APP", "GestPlanningCondi", "1", 5 End If If cpt <= 0 Then ...
J'ai essayé de la façon que j'ai décrite au dessus mais cela ne fonctionne pas correctement. existe t-il un exemple? Merci de me répondre. Silene
Salut,
Voici un exemple qui compte et autorise 5 ouvertures du fichier si
l'organisation n'est pas FR :
Private Sub Workbook_Open()
If Application.OrganizationName = "FR" Then Exit Sub
Dim WSH As Object
Dim N As Integer
Dim Entree As String
Set WSH = CreateObject("WScript.Shell")
Entree = "HKCUSoftwareMPFEClasseur.xls"
On Error GoTo LaBas
N = WSH.RegRead(Entree)
On Error GoTo 0
If N >= 4 Then ThisWorkbook.Close
WSH.RegWrite Entree, N + 1
Exit Sub
LaBas:
WSH.RegWrite Entree, 0
End Sub
Par contre, la méthode n'est pas infaillible : on pourra toujours
empêcher l'exécution des macros sur le fichier, et donc empêcher la
fermeture provoquée.
A+
Nicolas B.
Silene wrote:
Bonjour,
Je voudrai faire un petit programme pour que mon fichier
ne soit pas ouvert plus de 5 fois sur un autre ordinateur
en utilisant la base de registre:
if Application.OrganizationName <> "FR"
cpt = GetSetting(appname:="LFO_APP", _
section:="nom du fichier", key:="1")
SaveSetting "LFO_APP", "GestPlanningCondi", "1", 5
End If
If cpt <= 0 Then
...
J'ai essayé de la façon que j'ai décrite au dessus mais
cela ne fonctionne pas correctement.
existe t-il un exemple?
Merci de me répondre.
Silene
Voici un exemple qui compte et autorise 5 ouvertures du fichier si l'organisation n'est pas FR :
Private Sub Workbook_Open() If Application.OrganizationName = "FR" Then Exit Sub
Dim WSH As Object Dim N As Integer Dim Entree As String
Set WSH = CreateObject("WScript.Shell") Entree = "HKCUSoftwareMPFEClasseur.xls"
On Error GoTo LaBas N = WSH.RegRead(Entree) On Error GoTo 0
If N >= 4 Then ThisWorkbook.Close
WSH.RegWrite Entree, N + 1
Exit Sub LaBas: WSH.RegWrite Entree, 0 End Sub
Par contre, la méthode n'est pas infaillible : on pourra toujours empêcher l'exécution des macros sur le fichier, et donc empêcher la fermeture provoquée.
A+ Nicolas B.
Silene wrote:
Bonjour, Je voudrai faire un petit programme pour que mon fichier ne soit pas ouvert plus de 5 fois sur un autre ordinateur en utilisant la base de registre:
if Application.OrganizationName <> "FR" cpt = GetSetting(appname:="LFO_APP", _ section:="nom du fichier", key:="1") SaveSetting "LFO_APP", "GestPlanningCondi", "1", 5 End If If cpt <= 0 Then ...
J'ai essayé de la façon que j'ai décrite au dessus mais cela ne fonctionne pas correctement. existe t-il un exemple? Merci de me répondre. Silene
Michel Pierron
Bonjour Silène; Exemple: Private Sub Workbook_Open() Dim Counter On Error Resume Next Counter = GetAllSettings("MyApp", "Startup") If IsEmpty(Counter) Then WriteSettings "1" Exit Sub End If If Counter(0, 1) > 5 Then ThisWorkbook.Close False Else WriteSettings Counter(0, 1) + 1 End If End Sub
Private Sub WriteSettings(n) SaveSetting "MyApp", "Startup", "Count", n End Sub
MP
"Silene" a écrit dans le message de news:203901c47d43$b84161f0$ Bonjour, Je voudrai faire un petit programme pour que mon fichier ne soit pas ouvert plus de 5 fois sur un autre ordinateur en utilisant la base de registre:
if Application.OrganizationName <> "FR" cpt = GetSetting(appname:="LFO_APP", _ section:="nom du fichier", key:="1") SaveSetting "LFO_APP", "GestPlanningCondi", "1", 5 End If If cpt <= 0 Then ...
J'ai essayé de la façon que j'ai décrite au dessus mais cela ne fonctionne pas correctement. existe t-il un exemple? Merci de me répondre. Silene
Bonjour Silène;
Exemple:
Private Sub Workbook_Open()
Dim Counter
On Error Resume Next
Counter = GetAllSettings("MyApp", "Startup")
If IsEmpty(Counter) Then
WriteSettings "1"
Exit Sub
End If
If Counter(0, 1) > 5 Then
ThisWorkbook.Close False
Else
WriteSettings Counter(0, 1) + 1
End If
End Sub
Private Sub WriteSettings(n)
SaveSetting "MyApp", "Startup", "Count", n
End Sub
MP
"Silene" <silenes@tiscali.fr> a écrit dans le message de
news:203901c47d43$b84161f0$a301280a@phx.gbl...
Bonjour,
Je voudrai faire un petit programme pour que mon fichier
ne soit pas ouvert plus de 5 fois sur un autre ordinateur
en utilisant la base de registre:
if Application.OrganizationName <> "FR"
cpt = GetSetting(appname:="LFO_APP", _
section:="nom du fichier", key:="1")
SaveSetting "LFO_APP", "GestPlanningCondi", "1", 5
End If
If cpt <= 0 Then
...
J'ai essayé de la façon que j'ai décrite au dessus mais
cela ne fonctionne pas correctement.
existe t-il un exemple?
Merci de me répondre.
Silene
Bonjour Silène; Exemple: Private Sub Workbook_Open() Dim Counter On Error Resume Next Counter = GetAllSettings("MyApp", "Startup") If IsEmpty(Counter) Then WriteSettings "1" Exit Sub End If If Counter(0, 1) > 5 Then ThisWorkbook.Close False Else WriteSettings Counter(0, 1) + 1 End If End Sub
Private Sub WriteSettings(n) SaveSetting "MyApp", "Startup", "Count", n End Sub
MP
"Silene" a écrit dans le message de news:203901c47d43$b84161f0$ Bonjour, Je voudrai faire un petit programme pour que mon fichier ne soit pas ouvert plus de 5 fois sur un autre ordinateur en utilisant la base de registre:
if Application.OrganizationName <> "FR" cpt = GetSetting(appname:="LFO_APP", _ section:="nom du fichier", key:="1") SaveSetting "LFO_APP", "GestPlanningCondi", "1", 5 End If If cpt <= 0 Then ...
J'ai essayé de la façon que j'ai décrite au dessus mais cela ne fonctionne pas correctement. existe t-il un exemple? Merci de me répondre. Silene