XL 2013 Rendre une macro inutilisable après utilisation

R.R.

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je cherche, sans trouver, le code VBA qui me permettrait de rendre inutilisable une macro, ou le bouton d'une macro, après que celle-ci ait fait son oeuvre. Je l'utilise pour la réalisation d'un test éliminatoire.

Concrètement, j'ai un feu tricolore. Quand je clique sur le bouton rouge, ma macro s'exécute : elle affiche une valeur et marque un message comme quoi le test est terminé. Mais si je re-clique sur la macro, elle s'exécute de nouveau, ce que je voudrais éviter, puisque le test est terminé.

J'ai essayé avec un Exit Sub à la fin de la macro, sans réussir. J'ai trouvé comment "détruire" la macro, mais ce n'est pas ce que je veux. Ainsi, je fais appelle à vous pour quelque chose qui doit pourtant être très simple.

Merci d'avance à ceux qui me fourniront la réponse :)
 

James007

XLDnaute Barbatruc
Re : Rendre une macro inutilisable après utilisation

Bonjour à tous,

Comme le dit JCGL ... avec un simple compteur ... tu pourras éviter que la macro soit relancée ...

Mais si tu veux vraiment "détruire" ta macro ... il te faudra passer par VBE ... avec une référence à la librairie :

Microsoft Visual Basic Extensibilty 5.3

A +
:)
 

DoubleZero

XLDnaute Barbatruc
Re : Rendre une macro inutilisable après utilisation

Re-bonjour,

Une autre idée : rendre le bouton inactif.

Code:
Option Explicit
Sub Macro_1_fois()
' code souhaité...
    [a1] = "toto"
    ActiveSheet.Shapes("Bouton_rouge").OnAction = ""    ' nom du bouton adapter
End Sub

A bientôt :)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Rendre une macro inutilisable après utilisation

Bonjour à tous :),

Un fichier pour illustrer. Une méthode utilisant une forme et une autre utilisant un CommandButton (ActiveX). A chaque ouverture du fichier, on ré-active les codes. Si on ne le désire pas, supprimer le code de ThisWorkbook.
 

Pièces jointes

  • R.R.-macro une fois seulement-v1.xlsm
    20 KB · Affichages: 53

R.R.

XLDnaute Nouveau
Re : Rendre une macro inutilisable après utilisation

Hello tout le monde

Merci pour vos réponses !!! J'ai eu quelques difficultés à retranscrire vos solutions dans mon fichier, mais ça y est !!! J'y suis :D Encore un immense merci à vous tous. J'ai bien compris les démarches, mais j'ai quand même une question : quelle est la signification de "Nop" ???

Au plaisir de vous reposer quelques problèmes un de ces jours pour vous relire ;)

R.R.
 

R.R.

XLDnaute Nouveau
Re : Rendre une macro inutilisable après utilisation

Euh , en fait j'ai été un peu vite.
Toutes mes macros sont dans "Module 1", notamment "ReInit" et "Nop". J'ai placé le bout de code concernant la réinitialisation concernant ce module dans l'objet "Thisworkbook". Mais visiblement, l'appel de la macro ReInit ne se fait pas comme il faudrait. J'ai écrit la chose suivante :

Option Explicit
Private Sub Workbook_Open()
Call Module1.ReInit
End Sub

Mais le fichier ne se réinitialise pas ... :(
 

JCGL

XLDnaute Barbatruc
Re : Rendre une macro inutilisable après utilisation

Bonjour à tous,

Il me semble que tu tournes sous Mac.
La procédure WorkBook_Open doit être placée dans le module ThisWorkBook :

Modules_ThisWorkBook.JPG

A+ à tous
 

Pièces jointes

  • Modules_ThisWorkBook.JPG
    Modules_ThisWorkBook.JPG
    8.3 KB · Affichages: 56
Dernière édition:

Discussions similaires

Réponses
12
Affichages
282

Statistiques des forums

Discussions
312 468
Messages
2 088 682
Membres
103 919
dernier inscrit
BOB66500