• Initiateur de la discussion Initiateur de la discussion asper
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

asper

XLDnaute Nouveau
Bonsoir,

Voilà j'ai une macro(1) quis se déclenche à l'activation de la feuille. Jusqu'ici tout va bien........😀

Cette feuille je la copie par macro(2) dans un autre classeur. Lorsque la manoeuvre se fait j'ai la macro(1) de la feuille copiée qui plante,😡 bien sûre, car elle ne trouve pas ce que je lui demande.

Comme cette macro(1) n'est pas nécessaire dans le fichier de destination j'aimerai la supprimer. Comment faire pour supprimer cette macro(1) dans la feuille copiée....

Evidemment je veux garder la macro dans le classeur source.

J'espère avoir été clair........😱

Merci pour vos idées et contributions
 
Re : supprimer une macro

Bonsoir,

Pour cela lances l'editeur VBA (Alt+F11) et regardes le module qui te dérange et tu le vires.

Sinon tu vas dans Outils=>Macro=>Macros et tu sélectionnes celle que tu ne veux pas et cliques à droite sur supprimer.

Voilou.
 
Re : supprimer une macro

Re,

Pour "sauvegarder sous" sans la macro :

Sub SaveAsWithoutMacros()
Dim NomSource$, CheminDest$, NomDest$
Dim VBC As Object

NomSource = "TestSaveAs.xls" 'mets ce que tu veux
CheminDest = "C:" 'mets ce que tu veux
NomDest = "test.xls" 'mets ce que tu veux

Workbooks(NomSource).SaveAs CheminDest & NomDest

With ActiveWorkbook.VBProject
'cette partie du code est de Laurent Longre
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 'LL
End With

Application.Quit
SendKeys "%O"

End Sub
 
Re : supprimer une macro

😀 merci pour ton aide mais cela ne fonctionne pas car cela plante avant que je puisse l'enregistrersous.

En fait Il faut que l'on puisse la supprimer avant que la feuille devienne active

Merci 😎
 
Re : supprimer une macro

Bonsoir à tous


Un petit essai de copie d'une feuille sans les macros

Code:
Sub test()
Dim source As Worksheet
Set source = ActiveSheet
source.Cells.Copy
Worksheets.Add
Cells.PasteSpecial xlPasteAll
Application.CutCopyMode = xlCopy
Range("A1").Select
ActiveSheet.Name = "Copie de " & source.Name
source.Activate
End Sub
 
Re : supprimer une macro

Bonjour le forum,
J'essai de mettre en pratique ce code légèrement différent glné sur le forum, afin de faire une sauvegarde sans macros.
Sub test_sans_macros()
Dim VBC As Object
Dim Obj As OLEObject, X As Integer
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
For X = 1 To Sheets.Count
For Each Obj In Worksheets(X).OLEObjects
If TypeOf Obj.Object Is MSForms.CommandButton Then Obj.Delete
Next Obj
Next X
End With
ActiveWorkbook.SaveAs ("d:\documents alex\document excel\essai macro\test_sans_macros.xls")
Application.DisplayAlerts = False
ActiveWorkbook.Close
J'ai placé pour l'instant ce code dans un module, mais dès que je lance la macro, le message suivant apparaît:
" L'accès par programme au projet visual basic n'est pas fiable", et me met cette ligne en surbrillance:

With ActiveWorkbook.VBProject

Si vous aviez une idée?
Pourriez-vous me dire d'ou vient l'erreur?

Merci d'avance!

Re,

Pour "sauvegarder sous" sans la macro :

Sub SaveAsWithoutMacros()
Dim NomSource$, CheminDest$, NomDest$
Dim VBC As Object

NomSource = "TestSaveAs.xls" 'mets ce que tu veux
CheminDest = "C:" 'mets ce que tu veux
NomDest = "test.xls" 'mets ce que tu veux

Workbooks(NomSource).SaveAs CheminDest & NomDest

With ActiveWorkbook.VBProject
'cette partie du code est de Laurent Longre
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 'LL
End With

Application.Quit
SendKeys "%O"

End Sub
 
Re : supprimer une macro

Bonjour Perrot93, le forum,
Effectivement c'étais tou bête.
Cette macro a bien supprimé les codes, boutons dans les feuilles et formulaires, par contre ne m'a pas supprimé le module dans lequel j'avais inscrit ce code sans macro.
Pourquoi?

Si vous pouviez m'éclairer.

Merci d'avance.
Bonjour Alex,

Il faut cocher la case "faire confiance au projet visual basic", barre de menu Excel => Outils => macro => sécurité => onglet "éditeurs approuvés".

bonne journée.
@+

Edit: Oupss parlé trop vite, ne m'a pas supprimé les boutons dans mes feuilles, arfff
 
Re : supprimer une macro

Bonjour,

pour supprimer un module, c'est tout bête également.... :

Code:
Option Explicit
Sub test()
With ThisWorkbook.VBProject
    .VBComponents.Remove .VBComponents("Module2")
End With
End Sub

bonne journée
@+
 
Re : supprimer une macro

Bonjour Pierrot93, le forum,

J'ai bien testé ton code il fonctionne en l'état, par contre, quand je termine ce code par un sauvegarde, là survient le problème, il me supprime les modules sauf celui ou ce trouve code.
Ce qui parraît logique en même temps, car je demande de supprimer le module, et la ligne suivante lui demande de sauvegarder, je pense qu'il y a conflit.
Ci joint le code:
Dim VBC As Object
Dim Obj As OLEObject, X As Integer
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
On eror GoTo suite
For X = 1 To Sheets.Count
For Each Obj In Worksheets(X).OLEObjects
If TypeOf Obj.Object Is MSForms.commandbutton Then Obj.Delete
Next Obj
Next X
End With
suite:
With ThisWorkbook.VBProject
.VBComponents.Remove .VBComponents("Module1")
End With
Fichier = "C:\Users\Alexandre\Documents\test_sans_macros2.xls"

'Si le fichier existe déjà, le supprimer
If Dir(Fichier) <> "" Then Kill Fichier
'Nouvelle sauvegarde
ThisWorkbook.SaveCopyAs Fichier


Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.Quit

De plus je souhaite supprimer les boutons et là pareil rine ne se passe?!?

Y a-t-il un moyen de contourner ce problème, c'est à dire dans un même code faire supprimer tous les modules, pour enfin faire une sauvegarde?

Merci de vos conseils.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
138
Retour