comment puis-je démarrer exel en visual basic seulement 10 fois

Le
Martin
Je veux que mon VBA ne démarre pas plus que 10 fois
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques ALARDET
Le #6549911
Bonjour,

Par "démarrer", faut-il entendre "ouvrir" ou "exécuter" ?
1. "Ouvrir" pour aller bricoler dans le code
2. Ou bien "exécuter" une fonction que tu as installé

Ja c q u e s

"Martin" news:
Je veux que mon VBA ne démarre pas plus que 10 fois



PMO
Le #6557141
Bonjour,

Une piste avec l'exemple suivant

1) faites un nouveau classeur
2) copiez dans le module ThisWorkbook le code suivant
****************
Private Sub Workbook_Open()
Call compteur
ThisWorkbook.Save
If CInt(Mid(ThisWorkbook.Names("monCompteur"), 2)) > DEMARRAGE_MAXI Then
MsgBox prompt:="Période d'essai terminée.", _
Buttons:=vbExclamation
Exit Sub
End If
'--- Appel à votre traitement (adapter) ---
Call petitTraitement
End Sub
****************

3) copiez dans un module standard le code suivant
****************
'### Constante à adapter ###
Public Const DEMARRAGE_MAXI As Integer = 3
'###########################

Sub compteur(Optional dummy As Byte)
Dim N As Name
Dim bool As Boolean
For Each N In ThisWorkbook.Names
If N.Name = "monCompteur" Then
N.RefersTo = "=" & CInt(Mid(N.Value, 2)) + 1 & ""
bool = True
Exit For
End If
Next N
If Not bool Then
ThisWorkbook.Names.Add Name:="monCompteur", _
RefersTo:="=1", _
Visible:úlse
End If
End Sub

Sub petitTraitement(Optional dummy As Byte)
'--- pseudo traitement pour l'exemple ---
MsgBox "Vous pouvez utiliser le programme."
End Sub

'--- pour la remise du compteur à 0 ---
'Sub remiseAzero()
'On Error GoTo Erreur
'ThisWorkbook.Names("monCompteur").RefersTo = "=0"
'ThisWorkbook.Save
'Erreur:
'End Sub
****************

4) sauvez le classeur
5) fermez le et rouvrez le plusieurs fois (j'ai limité à 3)
A la 4ème ouverture la macro "petitTraitement" n'est plus appelée.

Cordialement.

PMO
Patrick Morange
Publicité
Poster une réponse
Anonyme