OVH Cloud OVH Cloud

Compter passage boucle

4 réponses
Avatar
Grégory
Bonjour,

J'ai une macro contenant (entre autres!) une procédure effectuant un
traitements sur des cellules Excel.

Je souhaiterai réaliser un traitement légèremment différent lors du 1er
appel à cette procédure: existe-il un moyen de compter ou identifier un
passage préçis dans une procédure?

Je pensais initialement transformer ma procédure en fonction qui renverrai
un compteur s'étant incémenté lors du passage, mais je suis à la recherche
d'une solution plus "élégante"!

D'avance merci,

Grégory

4 réponses

Avatar
G.Genier
Ca me parait pas mal :p

"Grégory" a écrit dans le message de
news:
Bonjour,

J'ai une macro contenant (entre autres!) une procédure effectuant un
traitements sur des cellules Excel.

Je souhaiterai réaliser un traitement légèremment différent lors du 1er
appel à cette procédure: existe-il un moyen de compter ou identifier un
passage préçis dans une procédure?

Je pensais initialement transformer ma procédure en fonction qui renverrai
un compteur s'étant incémenté lors du passage, mais je suis à la recherche
d'une solution plus "élégante"!

D'avance merci,

Grégory


Avatar
papou
Bonjour
A part l'utilisation d'un compteur que tu initialises à l'ouverture du
classeur ?
Dans l'en-tête d'un module tu déclares une variable publique :
Public compteur as long
Dans un évènement WorkBook_Open ou une macro Auto_Open, tu initialises ta
variable à 0
compteur = 0
Dans ta macro en première ligne tu incrémentes ta variable
compteur = compteur + 1
Dans ta macro ensuite tu testes s'il s'agit de la première exécution.
if compteur = 1 then
'
else
'
end if

Cordialement
Pascal
Avatar
Thierryp
Bonjour,

Tu peux éventuellement ajouter un booléen que tu passes à true lors du
passage au point précis que tu souhaites.
Il faut la déclarer en public et l'initialiser à l'ouverture du classeur.
Si ce traitement ne doit être fait qu'une seule et unique fois quel que
soit le nombre d'ouvertures du classeur, le plus simple est de de mettre
0 dans une cellule inutilisée (et protégée) et de passer sa valeur à 1
lors de la première utilisation. A chaque lancement, tu testes si la
valeur est à 1.

@+ thierryp

------------------------
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin
gourmet. (Courteline)
------------------------

Bonjour,

J'ai une macro contenant (entre autres!) une procédure effectuant un
traitements sur des cellules Excel.

Je souhaiterai réaliser un traitement légèremment différent lors du 1er
appel à cette procédure: existe-il un moyen de compter ou identifier un
passage préçis dans une procédure?

Je pensais initialement transformer ma procédure en fonction qui renverrai
un compteur s'étant incémenté lors du passage, mais je suis à la recherche
d'une solution plus "élégante"!

D'avance merci,

Grégory


Avatar
Grégory
Bonjour,

Merci à tous pour vos réponses!
J'ai finalement opté pour la solution utilisant une variable globale. Je ne
l'initialise en revanche pas à l'ouverture du classeur mais dans mon prog.
principal car ma macro doit pouvoir être exécutée +ieurs fois le classeur une
fois ouvert.

Une fois de plus, merci pour votre disponibilité!

Grégory


Bonjour,

J'ai une macro contenant (entre autres!) une procédure effectuant un
traitements sur des cellules Excel.

Je souhaiterai réaliser un traitement légèremment différent lors du 1er
appel à cette procédure: existe-il un moyen de compter ou identifier un
passage préçis dans une procédure?

Je pensais initialement transformer ma procédure en fonction qui renverrai
un compteur s'étant incémenté lors du passage, mais je suis à la recherche
d'une solution plus "élégante"!

D'avance merci,

Grégory