Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Créer un compteur

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+
 
Re : Créer un compteur

Salut,

pour avoir eu des problèmes avec les noms dont les références changent intempestivement (pas vous ?), je passe plutôt par une étiquette (Label) dont on peut changer les propriétés à souhait.
 

Pièces jointes

- 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
283
Réponses
5
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…