Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Rebonjour,

Je voudrais, par macro, créer un compteur activé par un bouton.
Je clique une 1ère fois sur ce bouton --> 1
une 2ème fois --> 2
une 3ème fois --> 3
une 4ème fois --> 4
Mais la 5ème fois --> 1
6ème fois --> 2
etc.

D'autre part comment garder en mémoire la dernière valeur, même après avoir fermé le classeur (variable Static ou quelque chose dans le genre ???).

Merci pour toute réponse.
 
Re : Créer un compteur

Merci Soenda, ça marche impécable.

Mais comment peut-on faire pour que le nombre entier (allant de 1 à 4 inclus), plutôt que d'apparaître dans une cellule de la feuille, reste gardé en mémoire dans la macro ?

Sub vues()

Dim i as Byte

i = IIf(i< 4, i + 1, 1)

'si j'ai bien compris, i commence en fait par 0

'suivant la valeur de i la macro va exécuter des opérations.
'mais je voudrais conserver la dernière valeur de i dans la macro, ce qui m'éviterait de l'afficher dans une cellule.

End Sub


-----------------------------------------------------------------------

Au fait, je suis (malheureusement) loin de la jungle, mais aux ornières grises de la Pampa !!
En ce moment "¡nos cagamos del frío!" : froid, pluie, brouillard et le p... de Pampero (= Mistral austral) qui ne cesse de souffler.
Ne jamais venir en Uruguay ou en Argentine en Juin, Juillet & Août. À moins d'adorer se les peler !!

Hasta pronto.
 
Re : Créer un compteur

Bonjour Magic Doctor, soenda,

A la fermeture du fichier, toutes les variables sont supprimées de la mémoire.

Une autre solution est de stocker la valeur dans un nom défini (menu Insertion-Nom) dans le classeur :

Code:
Sub Macro1()
Dim compt As Byte
On Error Resume Next
compt = Evaluate("Compteur")
On Error GoTo 0
compt = IIf(compt < 5, compt + 1, 1)
ActiveWorkbook.Names.Add Name:="Compteur", RefersTo:=compt
MsgBox compt
End Sub

A+
 
Re : Créer un compteur

Re,

Une autre écriture de la macro, sans On Error... :

Code:
Sub Macro1()
Dim compt As Byte
compt = IIf(IsNumeric(Evaluate("Compteur")), Evaluate("Compteur"), 0)
compt = IIf(compt < 5, compt + 1, 1)
ActiveWorkbook.Names.Add Name:="Compteur", RefersTo:=compt
MsgBox compt
End Sub

A+
 
Re : Créer un compteur

Re,

Un détail, on peut masquer le nom créé :

Code:
Sub Macro1()
Dim compt As Byte
compt = IIf(IsNumeric(Evaluate("Compteur")), Evaluate("Compteur"), 0)
compt = IIf(compt < 5, compt + 1, 1)
ActiveWorkbook.Names.Add Name:="Compteur", RefersTo:=compt[COLOR="Red"], Visible:=False[/COLOR]
MsgBox compt
End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
277
Réponses
5
Affichages
1 K
Retour