Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

2 réponses
Avatar
Martin
Je veux que mon VBA ne démarre pas plus que 10 fois

2 réponses

Avatar
Jacques ALARDET
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" a écrit dans le message de
news:
Je veux que mon VBA ne démarre pas plus que 10 fois



Avatar
PMO
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