Comment supprimer une macro via une macro ?

Comment supprimer une macro via une macro ? - VB/VBA/VBS - Programmation

Marsh Posté le 18-09-2006 à 19:36:27    

Hello,
 
Petite question, sous excel, je doit dupliquer une feuille qui contient du code et des données, et donc je fait un vulgaire copier coller basique.
 
Comment faire ensuite pour virer sur la feuille collée la partie code qui ne me servira plus ?
 
L'interet est que, ensuite cette feuille est transmise par mail et le destinataire, ne soit pas emmerdé avec la fenetre de sécurité d'ouverture macro.
 
J'ai déjà trouvé quelque scripts, mais ils effacent aussi les modules présent dans mon workbook.
 
 
Merci !

Reply

Marsh Posté le 18-09-2006 à 19:36:27   

Reply

Marsh Posté le 18-09-2006 à 23:57:14    

bonsoir,
Je pense que ce lien devrait faire l'affaire.
A+

Reply

Marsh Posté le 19-09-2006 à 19:18:25    

galopin01 a écrit :

bonsoir,
Je pense que ce lien devrait faire l'affaire.
A+


Hélas non, car il efface toutes les macros du projet, y compris celles des modules.

Reply

Marsh Posté le 20-09-2006 à 16:52:09    

:cry:


Message édité par soif de connaissance le 20-09-2006 à 16:52:51
Reply

Marsh Posté le 20-09-2006 à 16:58:50    

soif de connaissance a écrit :


L'interet est que, ensuite cette feuille est transmise par mail et le destinataire, ne soit pas emmerdé avec la fenetre de sécurité d'ouverture macro.


 
Salut, je fais ca aussi.
ce que je fais c'est créée une nouvelle feuille puis copier coller d'une feuille dans l'autre et pas de soucis de macro
 

Reply

Marsh Posté le 20-09-2006 à 19:44:55    

DamienCYS a écrit :

Salut, je fais ca aussi.
ce que je fais c'est créée une nouvelle feuille puis copier coller d'une feuille dans l'autre et pas de soucis de macro


Hélas pour moi oui, car la feuille d'origine contient un poil de code :

Private Sub CommandButton1_click()
Sheets("auto" ).Select
Call depart
End Sub


 
C'est juste ces 4 lignes que je voudrais supprimer.

Reply

Marsh Posté le 20-09-2006 à 19:46:13    

Reply

Marsh Posté le 20-09-2006 à 20:04:26    

0x90 a écrit :

Utilise grep [:chrisbk]


kécéssé ?

Reply

Marsh Posté le 21-09-2006 à 05:40:38    


Option Explicit
 
Sub SauverSansMacros()
Dim Chemin As String
    Chemin = ThisWorkbook.Path & "\" & "Backup.xls"
    ThisWorkbook.Sheets.Copy
    ActiveWorkbook.SaveAs Chemin
    ThisWorkbook.Close False
End Sub

Message cité 1 fois
Message édité par kiki29 le 21-09-2006 à 05:41:11
Reply

Marsh Posté le 21-09-2006 à 08:33:54    

kiki29 a écrit :


Option Explicit
 
Sub SauverSansMacros()
Dim Chemin As String
    Chemin = ThisWorkbook.Path & "\" & "Backup.xls"
    ThisWorkbook.Sheets.Copy
    ActiveWorkbook.SaveAs Chemin
    ThisWorkbook.Close False
End Sub



Non, car effacera toutes les macros de mon classeur, ce qu'il ne faut pas, je veux juste virer une macro sur une feuille précise

Reply

Marsh Posté le 21-09-2006 à 08:33:54   

Reply

Marsh Posté le 21-09-2006 à 09:31:35    

soif de connaissance a écrit :

Hélas pour moi oui, car la feuille d'origine contient un poil de code :

Private Sub CommandButton1_click()
Sheets("auto" ).Select
Call depart
End Sub


 
C'est juste ces 4 lignes que je voudrais supprimer.


 
C'est bien ce que je te dis essayes le code suivant :
 
 Sheets.Add After:=Sheets(Sheets.Count)
 Sheets("Feuil1" ).Select
 Cells.Copy
 Sheets(Sheets.Count).Select
 Cells.Select
 ActiveSheet.Paste

Reply

Marsh Posté le 21-09-2006 à 11:26:34    

A adapter avec une gestion d'erreurs adéquate
 


Option Explicit
 
' la Macro à supprimer est nommée ToDelete dans module ModuleA
' Cocher Outils | Références Microsoft Visual Basic for Applications  
Extensibility 5.3
 
Sub DelMacro()
Dim Debut As Long
Dim NbLignes As Long
 
    With ThisWorkbook.VBProject.VBComponents("ModuleA" ).CodeModule
        Debut = .ProcStartLine("ToDelete", vbext_pk_Proc)
        NbLignes = .ProcCountLines("ToDelete", vbext_pk_Proc)
        .deleteLines Debut, NbLignes
    End With
 
End Sub


Message édité par kiki29 le 21-09-2006 à 11:44:53
Reply

Marsh Posté le 21-09-2006 à 11:48:40    

DamienCYS a écrit :

C'est bien ce que je te dis essayes le code suivant :
 
 Sheets.Add After:=Sheets(Sheets.Count)
 Sheets("Feuil1" ).Select
 Cells.Copy
 Sheets(Sheets.Count).Select
 Cells.Select
 ActiveSheet.Paste


Effectivement ça à l'air de marcher en modifiant la commande du copier coller de la feuille.
 
Merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed