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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
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