Problème de suppression de macro excel

Résolu
Utilisateur anonyme -  
 Midou -
Bonjour, quand j'ouvre un fichier excel, il m'affiche la fenêtre d'activation ou désactivation des macros. Je ne veux plus qu'il m'affiche cette fenêtre, donc je fait : "activer macro" ou "desactiver macro" c'est pareil, puis outils, macros, il m'affiche la fenêtre "macro", mais il n'y a rien à l'intérieur ce qui fait que je ne peux supprimer aucune macro. Je referme tout, et quand je ré-ouvre mon fichier c'est pareil il me ré-affiche la fenêtre "activer macro" ou "desactiver macro" !!! Quelqu'un peut-il m'aider ?
merci

16 réponses

Résumé de la discussion

L'ouverture d'un fichier Excel déclenche systématiquement une fenêtre d'activation des macros et empêche la suppression des macros, car le code peut être présent dans des modules Visual Basic qui génèrent le message. La solution principale consiste à ouvrir l'éditeur Visual Basic (ALT+F11) et supprimer les modules actifs dans le Projet, en particulier les Modules nommés Module1, Module2, puis enregistrer le fichier. En cas d'absence apparente de modules, il faut aussi vérifier les procédures dans les feuilles ou ThisWorkbook et effacer tout code, puis ajuster temporairement le niveau de sécurité des macros pour éviter les prompts indésirables.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. François
     
    J'ai trouvé la solution !

    Enfin pour moi :)

    Il arrive que la suppression d'une macro via Outils/macro/macro efface la macro mais pas le module Visual Basic. C'est le module, même vide, qui déclenche le message...Donc allez dans Outils/macro/Visual Basic editor et regarder dans la liste des fichiers VBA : trouver le fichier module et le supprimer (souris bouton de droite), fermer et sauvegarder le fichier et voilà !

    Bonne chance !!!!
    38
    1. trouch Messages postés 32 Date d'inscription   Statut Membre 2
       
      Bonjour,

      SUPPRIME TES MACROS DE TES CLASSEURS LOSRQU'ils sont calculés.

      Déclaration
      Private Declare Function GetForegroundWindow Lib "User32" () As Long

      Private Declare Function SetForegroundWindow Lib "User32" _
      (ByVal hWnd As Long) As Long

      Code

      'PROCEDURE DE SUPPRESSION DE LA MACRO
      Range("A1").Select
      CurhWnd = GetForegroundWindow
      Dim VBC As Object
      With ActiveWorkbook.VBProject
      For Each VBC In .VBComponents
      If VBC.Type = 100 Then
      With VBC.CodeModule
      .DeleteLines 1, .CountOfLines
      .CodePane.Window.Close
      End With
      Else: .VBComponents.Remove VBC
      End If
      Next VBC
      End With
      SetForegroundWindow CurhWnd

      @+
      0
    2. guénael
       
      Merci François, j'avais ce problème depuis quelques temps et grace à toi je suis sauvé.
      Merci pout ton astuce
      0