OVH Cloud OVH Cloud

Couper les liaisons avant l'envoi

4 réponses
Avatar
Didier Novarin
Bonsoir
Je souhaite envoyer une feuille pas mail, mais le pb, est qu'il y a des
macros sur cette feuille.
Comment faire afin de couper les macros avant l'envoi ?
Je vous remercie
Didier

4 réponses

Avatar
J
Bonjour (et bon Noël)
de Frédéric Sigonneau:

Attribute VB_Name = "SaveAsSansLesMacros"

'enregistrer un classeur sous un autre nom,
'en le vidant au passage de son code
'fs, mpfe

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

NomSource = "EssaiSaveAs.xls"
CheminDest = "C:WindowsTemp"
NomDest = "Essai.xls"

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
End With

Application.Quit
SendKeys "%O"

End Sub

@+
J@@

Bonsoir
Je souhaite envoyer une feuille pas mail, mais le pb, est qu'il y a des
macros sur cette feuille.
Comment faire afin de couper les macros avant l'envoi ?
Je vous remercie
Didier




Avatar
Michel Gaboly
Bonjour,

Variante :

Voici une procédure qui supprime toutes les macros d'un classeur,
à utiliser avec PRUDENCE

Sub SuppCode()
Dim M As Object, Composants As Object
Set Composants = ActiveWorkbook.VBProject.VBComponents
For Each M In Composants
' Test type module (1 pour les modules standards,
' 2 pour les modules de classe, 3 pr les modules de UserForm ,
' 100 pr les modules de feuille et le module ThisWorkbook)
If M.Type <= 3 Then
Composants.Remove M
Else
With M.CodeModule
.DeleteLines 1, .CountOfLines
End With
End If
Next M
End Sub

Elle supprime les modules standards, les modules de classe et les UserFor ms
et efface le contenu des modules attachés aux feuilles ainsi que celui du module
ThisBorkbook.

NB - Il est probablement nécessaire que dans les références (menu " Outils"
de VBA), "Microsoft Visual Basic for Applications Extensibility" soit coc hé.

ATTENTION : le traitement s'applique au classeur actif ; il est donc impé ratif
de vérifier qu'il s'agit du bon.

Je te conseille également de prévoir un message de confirmation.

L'idéal serait d'avoir un UserForm qui affiche la liste des classeurs o uverts, afin
de pouvoir choisir celui ou ceux dont les macros sont à effacer


Bonsoir
Je souhaite envoyer une feuille pas mail, mais le pb, est qu'il y a des
macros sur cette feuille.
Comment faire afin de couper les macros avant l'envoi ?
Je vous remercie
Didier





--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Didier Novarin
Bonjour
Un très grand merci à tous les 2
Joyeux Noël
Didier

"Michel Gaboly" a écrit dans le message de news:
%
Bonjour,

Variante :

Voici une procédure qui supprime toutes les macros d'un classeur,
à utiliser avec PRUDENCE

Sub SuppCode()
Dim M As Object, Composants As Object
Set Composants = ActiveWorkbook.VBProject.VBComponents
For Each M In Composants
' Test type module (1 pour les modules standards,
' 2 pour les modules de classe, 3 pr les modules de UserForm,
' 100 pr les modules de feuille et le module ThisWorkbook)
If M.Type <= 3 Then
Composants.Remove M
Else
With M.CodeModule
.DeleteLines 1, .CountOfLines
End With
End If
Next M
End Sub

Elle supprime les modules standards, les modules de classe et les UserForms
et efface le contenu des modules attachés aux feuilles ainsi que celui du
module
ThisBorkbook.

NB - Il est probablement nécessaire que dans les références (menu "Outils"
de VBA), "Microsoft Visual Basic for Applications Extensibility" soit coché.

ATTENTION : le traitement s'applique au classeur actif ; il est donc
impératif
de vérifier qu'il s'agit du bon.

Je te conseille également de prévoir un message de confirmation.

L'idéal serait d'avoir un UserForm qui affiche la liste des classeurs
ouverts, afin
de pouvoir choisir celui ou ceux dont les macros sont à effacer


Bonsoir
Je souhaite envoyer une feuille pas mail, mais le pb, est qu'il y a des
macros sur cette feuille.
Comment faire afin de couper les macros avant l'envoi ?
Je vous remercie
Didier




--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Michel Gaboly
De rien, :-))

C'était avec plaisir, encore + un 25 décembre ;-))

Bonjour
Un très grand merci à tous les 2
Joyeux Noël
Didier

"Michel Gaboly" a écrit dans le message de news:
%
Bonjour,

Variante :

Voici une procédure qui supprime toutes les macros d'un classeur,
à utiliser avec PRUDENCE

Sub SuppCode()
Dim M As Object, Composants As Object
Set Composants = ActiveWorkbook.VBProject.VBComponents
For Each M In Composants
' Test type module (1 pour les modules standards,
' 2 pour les modules de classe, 3 pr les modules de UserFo rm,
' 100 pr les modules de feuille et le module ThisWorkbook)
If M.Type <= 3 Then
Composants.Remove M
Else
With M.CodeModule
.DeleteLines 1, .CountOfLines
End With
End If
Next M
End Sub

Elle supprime les modules standards, les modules de classe et les UserF orms
et efface le contenu des modules attachés aux feuilles ainsi que celu i du
module
ThisBorkbook.

NB - Il est probablement nécessaire que dans les références (menu "Outils"
de VBA), "Microsoft Visual Basic for Applications Extensibility" soit c oché.

ATTENTION : le traitement s'applique au classeur actif ; il est donc
impératif
de vérifier qu'il s'agit du bon.

Je te conseille également de prévoir un message de confirmation.

L'idéal serait d'avoir un UserForm qui affiche la liste des classeurs
ouverts, afin
de pouvoir choisir celui ou ceux dont les macros sont à effacer



Bonsoir
Je souhaite envoyer une feuille pas mail, mais le pb, est qu'il y a des
macros sur cette feuille.
Comment faire afin de couper les macros avant l'envoi ?
Je vous remercie
Didier








--
Cordialement,

Michel Gaboly
www.gaboly.com