supprimer code VBA lors d'une copie de feuille

chinel

XLDnaute Impliqué
Salut tout le monde !!!

j'ai besoin d'un coup de main !

j'ai un fichier excel avec plusieurs feuilles
j'ai un bouton de commande qui envoi une copie de ma feuille dans ma boîte mail (Microsoft Outlook) comme ça je peux choisir le destinataire

j'aurais bien voulu savoir si on pouvait supprimer le code VBA de cette copie pour que le(s) destinataire(s) ne puisse(nt) voir mon code ?


merci de votre aide !!!
 

Pièces jointes

  • demande d'aide.xls
    24 KB · Affichages: 182
  • demande d'aide.xls
    24 KB · Affichages: 189
  • demande d'aide.xls
    24 KB · Affichages: 196

Staple1600

XLDnaute Barbatruc
Re : supprimer code VBA lors d'une copie de feuille

Bonjour

Tu trouveras de quoi faire ici
https://www.excel-downloads.com/threads/supprimer-toutes-les-macros.73177/


Un exemple de code qui ote les macros

Code:
Sub SaveWithoutMacros() 
'Purpose : To save a copy of the active workbook without macros 
'But : Pour créer une copie du classeur actif sans macros

'PLEASE NOTE : You must choose Tools, References and select the 
'Microsoft Visual Basic for Applications Extensibility library 

'NOTER SVP : Vous devez aller dans Outils, Références et cocher
'Microsoft Visual Basic for Applications Extensibility library 

Dim vFilename As Variant 
Dim wbActiveBook As Workbook 
Dim VBComp As VBIDE.VBComponent 
Dim VBComps As VBIDE.VBComponents 

On Error GoTo CodeError 

'Get a filename to save as 
vFilename = Application.GetSaveAsFilename(filefilter:="Microsoft Excel Workbooks,*.xls", _ 
                                        Title:="Copie du classeur sans les macros") 
                                        
If vFilename = False Then Exit Sub  'Utilisateur choisit d'annuler
ActiveWorkbook.SaveCopyAs vFilename 
Set wbActiveBook = Workbooks.Open(vFilename) 

'Now strip all VBA, modules, userforms from the copy 
'Supprimer maintenant tout le code VBA, les modules, userforms de la copie 

'This code is from Chip Pearson's website [url=http://www.cpearson.com]Excel Redirect[/url] 

Set VBComps = wbActiveBook.VBProject.VBComponents 

For Each VBComp In VBComps 
   Select Case VBComp.Type 
      Case vbext_ct_StdModule, vbext_ct_MSForm, _ 
            vbext_ct_ClassModule 
         VBComps.Remove VBComp 
      Case Else 
         With VBComp.CodeModule 
            .DeleteLines 1, .CountOfLines 
         End With 
   End Select 
Next VBComp 

wbActiveBook.Save 

Exit Sub 

CodeError: 
MsgBox Err.Description, vbExclamation, "Une erreur s'est produite" 

End Sub
 
Dernière édition:

myDearFriend!

XLDnaute Barbatruc
Re : supprimer code VBA lors d'une copie de feuille

Bonsoir chinel, Staple1600, le Forum,

Et pour répondre un peu plus précisément à la question, à savoir, copier une unique feuille sans son code VBA d'origine :
Code:
[SIZE=2][COLOR=GRAY][B][I]DANS UN MODULE DE CODE STANDARD[/I][/B][/COLOR]

[COLOR=NAVY]Sub[/COLOR] CopieFeuilleSansVBA()
[COLOR=GREEN]'myDearFriend! - septembre 2007[/COLOR]

    Sheets("Feuil1").Copy       [COLOR=GREEN]'à adapter pour la feuille souhaitée[/COLOR]
    [COLOR=NAVY]With[/COLOR] ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
        .DeleteLines 1, .CountOfLines
    [COLOR=NAVY]End With[/COLOR]
    
[COLOR=NAVY]End Sub[/COLOR][/SIZE]
Sauf erreur, ici nul besoin d'activer une référence de bibliothèque particulière, par contre (comme pour le code précédent même si ce n'est pas précisé dans l'extrait fourni), l'option Faire confiance au projet Visual Basic doit être cochée dans menu Options / Macro... / Sécurité / onglet Editeurs Approuvés.

Cordialement,
 

chinel

XLDnaute Impliqué
Re : supprimer code VBA lors d'une copie de feuille

Salut tout le monde !!!



un grand merci à vous deux !
my Dearfriend j'ai mis ton code avec le mieux et cela marche à merveille !!!
 

Pièces jointes

  • demande d'aide.xls
    25 KB · Affichages: 352
  • demande d'aide.xls
    25 KB · Affichages: 341
  • demande d'aide.xls
    25 KB · Affichages: 375

chinel

XLDnaute Impliqué
Re : supprimer code VBA lors d'une copie de feuille

Salut tout le monde !


une petite question
pourquoi cela fonctionne t'il que sur mon pc car quand je le fait sur un autre pc cela donne un débogage

pourquoi?


merci de m'aider !
 
Dernière édition:

myDearFriend!

XLDnaute Barbatruc
Re : supprimer code VBA lors d'une copie de feuille

Bonsoir chinel, Staple1600,

A part te répéter ce que je dis plus haut :
...l'option Faire confiance au projet Visual Basic doit être cochée dans menu Options / Macro... / Sécurité / onglet Editeurs Approuvés.
non, je ne vois pas, si ce n'est que l'erreur que tu obtiens provient peut-être d'autre part que des 3 lignes de code citées plus haut...

Cordialement,
 

Brigitte

XLDnaute Barbatruc
Re : supprimer code VBA lors d'une copie de feuille

Bonsoir,

Et bien moi je fais une chose qui ne se fait pas... Je m'incruste ici, car de passage en même temps que Didier, pour juste lui faire un ti coucou. Entre sa trop grande rareté et mon emploi du temps de "ouf", je le croise rarement.

Bisous à toi et à tous les autres "pardon du dérangement".

Encore bravo pour ton site, Didier, il n'a pas encore assez de lecteurs, pourtant il les "veau" bien !
 

Mc Sevigny

XLDnaute Nouveau
Re : supprimer code VBA lors d'une copie de feuille

Bonjour myDearFriend,
j'ai la version 2010 de VBA. je ne réussi pas à trouver l'endroit suivant:


...l'option Faire confiance au projet Visual Basic doit être cochée dans menu Options / Macro... / Sécurité / onglet Editeurs Approuvés.

merci!
bonne journée
 

job75

XLDnaute Barbatruc
Re : supprimer code VBA lors d'une copie de feuille

Bonsoir Mc Sevigny,

Onglet Fichier => Options => Centre de gestion de la confidentialité => Paramètres... => Paramètres des macros.

Cocher Accès approuvé au modèle d'objet du projet VBA.

Bonne nuit.
 

Discussions similaires

Réponses
2
Affichages
242
Réponses
2
Affichages
118
Réponses
22
Affichages
784

Statistiques des forums

Discussions
312 239
Messages
2 086 508
Membres
103 236
dernier inscrit
Menni