Désactivation d'une macro

guainflo

XLDnaute Junior
J’ai un programme contenant plusieurs macros.
Sur la feuille 1, j’ai un bouton et sa macro associée permettant de mettre en forme les feuilles 3 et 4 selon 2 variables (entrées par l’utilisateur sur la feuille 1), création de tableaux de dimensions fonctions des 2 variables.
Sur la feuille 2, je copie les 2 variables de la feuille 1 et l’utilisateur peut entrer des données pour info.
Ensuite, sur les feuilles 3 et 4, j’ai des macros du style :

Code:
Private Sub Worksheet_Change(ByVal target As Range)
    Dim Plage As Range  
    …
    Set Plage = Range( … )
    If Application.Intersect(target, Plage) Is Nothing Then
    Else
        indicepage = 1
        Call modif
    End If
End Sub

Je veux que lorsque le programme a fini de mettre en forme les feuilles 3 et 4, l’utilisateur n’a plus la possibilité d’appuyer sur le bouton de la feuille 1 (afin de ne pas modifier les feuilles 3 et 4).
J’ai pensé à changer une variable dès que le bouton est appuyé, comme cela à chaque appui sur le bouton, je test la variable et je fais ou non la mise en forme. Le problème est que je perds la valeur de la variable si je sauvegarde et ferme le fichier.
J’ai essayé de supprimer la feuille 1 à la fin de la mise en forme (je sauvegarde par vba), pas de problème dans le déroulement du prg, mais j’ai un problème lors de l’ouverture du fichier sauvegardé (le fichier ne s’ouvre pas, erreur de Windows, le lien n’est pas trouvé par Windows), pourtant le fichier a bien été sauvegardé (grâce à une fenêtre « enregistrer sous ») et la macro supprimée ne sert plus pour la suite du prg.

Avez-vous une idée (avec les lignes de code) comme par exemple désactiver une macro (macro activée sur l'appui d'un bouton) en pensant qu’il faut que la désactivation soit gardée en mémoire après la fermeture du fichier Excel 2000.

Je ne mets pas en pièce jointe mon prg car même zippé il dépasse la limite, et surtout je crois que je n’ai pas trop le droit (confidentialité même si ce n’est pas secret défense).

Merci par avance, j'espère avoir été clair.
 

13GIBE59

XLDnaute Accro
Re : Désactivation d'une macro

Bonjour Guainflo.

Pas facile de tout comprendre, mais il me semble que tu devrais créer ton bouton de commande de macro à partir de la boîte à outils contrôle, et non pas de la barre d'outils formulaires.

A partir de là, si ton bouton se nomme commandbutton1, insère dans ta macro là où il faut le code suivant :
Code:
commandbutton1.Enabled=False

qui "désactivera" ton bouton (grisé).

J'espère que cela te conviendra.
 

Statistiques des forums

Discussions
312 584
Messages
2 089 976
Membres
104 323
dernier inscrit
NabBEn