Supprimer une macro donnée dans une feuille

Jack2

XLDnaute Occasionnel
Bonjour le Forum,

J'ai bien trouvé des exemples de suppression de macro sur le forum, notamment par MichelXLD je crois, mais je n'arrive pas, lorsque je copie puis renomme une feuille, à ne supprimer qu'une macro sur les deux existantes dans la feuille copiée (cf. feuilles avant et après du fichier joint).

Merci par avance
A+ Jack2
 

Pièces jointes

  • Suppr_Macro_Dans_Feuillexls.xls
    62.5 KB · Affichages: 36
Dernière édition:

Jack2

XLDnaute Occasionnel
Re : Supprimer une macro donnée dans une feuille

Merci Geneviève,

J'ai dû mal m'expliquer. J'ai une feuille appelée "Avant" qui est copiée et qui change de nom, ce qui donne respectivement les feuilles "Avant" et "Après" dans mon exemple). Ce que je voudrais faire, c'est que la feuille Avant garde les deux procédures :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Onglet As String
If Target.Count > 1 Then Exit Sub
If (Target.Address = "$A$1") And (Target.Value <> "") Then Sheets("Menu").Select
End Sub

Private Sub Bouton_Saisie_Click()
    UserForm1.Show
End Sub
et la feuille "Après" supprime la procédure Sub Bouton_Saisie_Click() pour qu'il ne reste plus que la première :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Onglet As String
If Target.Count > 1 Then Exit Sub
If (Target.Address = "$A$1") And (Target.Value <> "") Then Sheets("Menu").Select
End Sub
EDIT : J'ai actualisé le fichier du post 1 pour être plus compréhensible
Merci et bon week-end à tous
Jack2
 
Dernière édition:

Jack2

XLDnaute Occasionnel
HELP ! Supprimer une macro donnée dans une feuille

Bonjour le Forum,

Y aurait-il quelqu'un pour m'aider à résoudre ce problème ?????.
Ci-joint le fichier avec les codes trouvés dans le forum que je n'arrive pas à appliquer à mon cas.
Merci

Jack2
 

Pièces jointes

  • Suppr_Macro_Dans_Feuilles_2.xls
    70.5 KB · Affichages: 25
G

Guest

Guest
Re : Supprimer une macro donnée dans une feuille

Bonjour,

A mettre dans un module général.
Création de la nouvelle feuille, suppression de la macro idoine, et suppression du bouton de commande.

Code:
Sub CréationFeuilleEtSuppressionMacroEtBouton()
    Sheets("Avant").Copy after:=Sheets(Sheets.Count)
    With ActiveSheet
        'Eventuellement lui donner un nom en décommentant la ligne ci-dessous
        '.Name ="MaNouvelleFeuille"
        With .Parent.VBProject.vbcomponents(ActiveSheet.CodeName).codemodule
            .deleteLines .ProcStartLine("Bouton_Saisie_Click", 0), .ProcCountLines("Bouton_Saisie_Click", 0)
        End With
        'Supprimer le bouton de la macro
        .OLEObjects("Saisie").Delete
    End With
End Sub

A+
 

Jack2

XLDnaute Occasionnel
Re : Supprimer une macro donnée dans une feuille

Bonjour Hasco, bonjour le Forum,

Merci beaucoup pour le coup de main, c'est sympa. Je n'aurais jamais pensé à remplacer vbcomponents("Module3") par vbcomponents(ActiveSheet.CodeName) et en plus tu m'évites une boucle pour la suppression du bouton de saisie. Je vais essayer ça en rentrant.

A+ Jack2
 

Jack2

XLDnaute Occasionnel
Re : Supprimer une macro donnée dans une feuille

Bonsoir Hasco, Bonsoir le Forum

J'ai cherché un peu partout et je n'arrive pas à trouver pourquoi ton code ne fonctionne pas quand je l'utilise. D'après ce que j'ai pu trouver ça devrait marcher. Ci-joint 2 essais avec commentaires. Si tu peux jeter un coup d’œil, je t'en remercie.

A+ Jack2
 

Pièces jointes

  • Classeur1.xls
    29.5 KB · Affichages: 27
  • Classeur1.xls
    29.5 KB · Affichages: 26
  • Classeur1.xls
    29.5 KB · Affichages: 28

Dull

XLDnaute Barbatruc
Re : Supprimer une macro donnée dans une feuille

Salut Jack, genevieve78, Hasco:), le Forum

cela devrait mieux marcher

Code:
Sub Creer_Onglet()
Sheets("Feuil1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
With ActiveSheet
    .Name = "MaNouvelleFeuille"
        With .Parent.VBProject.vbcomponents(ActiveSheet.CodeName).codemodule
            .deleteLines .ProcStartLine("Saisie_Click", 0), .ProcCountLines("Saisie_Click", 0)
        End With
        .OLEObjects("Saisie").Delete
    End With
End Sub

Saisie_Click <> Bouton_Saisie_Click

Bonne Journée
 

Pièces jointes

  • Jack.xls
    29.5 KB · Affichages: 23
  • Jack.xls
    29.5 KB · Affichages: 26
  • Jack.xls
    29.5 KB · Affichages: 25
Dernière édition:

Jack2

XLDnaute Occasionnel
Re : Supprimer une macro donnée dans une feuille

Bonjour tout le monde,

Merci Dull pour la correction. J'ai oublié de modifier le nom de la procédure dans le classeur. Il me semble que le code donné par Hasco fonctionnait quand je l'ai essayé au boulot, comme celui que tu as corrigé, et qui correspond à celui de Hasco, fonctionne (toujours au boulot - Excel 2007). Je dois avoir un problème chez moi (Excel 2003). Je vais le réinstaller et voir ce que ça donne.

Merci à tous, je pense que le sujet est clos.

A+ Jack2
 

MJ13

XLDnaute Barbatruc
Re : Supprimer une macro donnée dans une feuille

Bonjour à tous

Je dois avoir un problème chez moi (Excel 2003). Je vais le réinstaller et voir ce que ça donne.

Attention, il y a des ajouts qui peuvent avoir été fait sur les versions récentes. Il faut donc debugger, en mettant un point d'arêt avec F9 dans ton code sur Xl2003 pour voir où se trouve le problème.
 

Jack2

XLDnaute Occasionnel
Re : Supprimer une macro donnée dans une feuille

Re Bonjour tout le monde,

Je vais vérifier ce soir le code de la suppression de la macro. Il plante systématiquement sur la suppression de l'objet. Je poste la réponse ce soir.

Bonne journée à tous,

Jack2
 
G

Guest

Guest
Re : Supprimer une macro donnée dans une feuille

Re,

Dans le fichier que tu nous as donné en post#1 le bouton est un bouton ActiveX, vérifie sur ton fichier sur lequel ça plante que le bouton ne soit pas un bouton de formulaire, auquel cas il faudra modifier:

Remplacer
Code:
 .OLEObjects("Saisie").Delete

Par
Code:
 .Shapes("Saisie").Delete

A supposé que le bouton s'appelle 'Saisie' (le nom affiché dans la zone de texte à gauche de la barre de formule, quand tu sélectionne le bouton [de formulaire])

A+
 

Jack2

XLDnaute Occasionnel
Re : Supprimer une macro donnée dans une feuille

Bonsoir tout le monde,

Tu as raison Hasco. Avec le code :
Code:
.Shapes("Saisie").Delete
cà marche très bien. J'aurais dû m'en douter puisque j'utilisais :
Code:
For Each Obj In ActiveSheet.Shapes
    Obj.Delete
Next Obj
(les débutants manquent de logique...). Par contre, ça plante toujours sur la ligne suivante qui se met en surbrillance :
Code:
With .Parent.VBProject.vbcomponents(ActiveSheet.CodeName).codemodule
avec erreur 1004 : l'accès par programme au projet Visual Basic n'est pas fiable

Bon week-end à tous
A+ Jack2
 
G

Guest

Guest
Re : Supprimer une macro donnée dans une feuille

Bonjour,

Il faut aller dans les options de sécurité des macros: dans l'onglet 'éditeur approuvés', en bas, cocher 'faire confiance au projet visual basic'. Sans cela impossible du supprimer une macro ou un module par VBA.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 223
Messages
2 086 402
Membres
103 200
dernier inscrit
pascalgip