Macros et modules VBA Excel 2007

Bonjour à toutes et à tous,

J'ai utilisé l'enregistreur de macros pour un travail.
Cette macro apparait dans la liste des enregistrées et dans un module.
Je souhaiterais l'éliminer dans la liste des enregistrées pour ne la conserver que dans le module. Comment faire???
A l'avance merci

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Bonjour,

    Qu'appelles-tu "liste des enregistrées"?
    Comment y accèdes tu, à cette liste?
    1. En étant sur Développeur, on peut enregistrer une macro en cliquant sur "Enregistrer une macro"
      en haut à gauche de l'écran. On fait une manip puis "Arreter l'enregistrement"
      A partir de là si on sollicite "Macro" toujours en haut a gauche, on a notre macro qui est dans cette liste.
      Malheureusement elle se trouve également dans un module et je ne sais pas l'effacer dans la liste.
      Merci de t'intéresser à mon pb
      1. bonjour, pour supprimer une macro, tu peux:

        soit dans l'onglet "afficher les macros", tu sélectionnes ta macro et tu cliques sur le moins

        soit dans l'onglet "afficher les macros", tu sélectionnes ta macro et tu cliques sur modifier. par la suite tu supprimes l'ensemble de tes lignes de code

        normalement ça devrait fonctionner
        1. BdD Alexis
          Merci pour ta réponse mais quant est il de la même macro dans un module? Elle disparaît aussi?
          Supprimer une macro je sais faire mais mon pb c'est qu'elle est supprimée dans la liste des macros et dans le module. Et c'est ce que je cherche à éviter
          1. Modérateur
            Bonjour,

            Pour "supprimer" une macro de la liste des macros (que l'on peut également appeler par ALT+F8), tout en la conservant "bien au chaud" dans un module, il y a plusieurs méthodes.
            Prenons un exemple.
            J'ai créé cette macro :
            Sub Miaule()
                MsgBox "Miaou"
            End Sub

            Celle-ci apparaît dans ma liste des macros...

            --------------- Méthode 1 ---------------
            Pour la faire disparaître, utilise le mot clé Private :
            Private Sub Miaule()
                MsgBox "Miaou"
            End Sub

            Ta macro ne sera plus accessible QUE depuis son propre module!

            --------------- Méthode 2 ---------------
            Lui passer un argument Optionel :
            Sub Miaule(Optional Chat As Boolean = True)
                MsgBox "Miaou"
            End Sub

            Ta macro reste accessible dans tous les modules, mais plus depuis le classeur...
            1. Merci pour tes explications pijaku
              j'ai passé mes macros dans les modules en optionnal et du coup, elles n'apparaissent plus dans la liste
              Pb réglé merci à tous
              1. Bar pijaku
                La méthode 1 m'a posé qq pb car comme tu le précises on ne peut passer d'un module à l'autre.
                Je vais donc tester la méthode 2
                Merci à toi et je te tiens au courant
                Bonne soirée
                Mais que faut il comprendre par "chat" après optional? Comme il s'agit d'un miaou, ça m'interpelle un peu
                1. Modérateur
                  Bonjour,

                  "chat" ne veux rien dire.
                  Il s'agit juste d'une variable.

                  Autre exemple :
                  Sub Macro1(Optional MaVariable As Boolean = False)
                    MsgBox "Hello world"
                  End Sub


                  L'astuce est juste de passer une variable inutile. On la passe en optional, comme ça, dans la procédure d'appel, on n'est pas obligé de la transmettre.