OVH Cloud OVH Cloud

Supprimer des feuilles et désactiver macros...

2 réponses
Avatar
Christophe B.
Bonjour,

J'ai une boucle if dans laquelle il y a une msgbox demandant si on veut
sauvegarder. Si oui, ca supprime les feuilles dont on a plus besoin et ca
sauvegarde. Jusque là tout va bien :)
Est-il possible de désactiver qques macros de ce nouveau fichier avant la
sauvegarde?

Merci,

Christophe.B

2 réponses

Avatar
Dude
oui c'est possible. En gros tu supprimes les macros dans ton nouvel
enregistrement.
tu as deux solutions :
1 - regrouper toutes les macros à désactiver dans un seul module (exemple
ci-dessous)
2 - déclarer un "array" contenant le nom de toutes les macros que tu veux
supprimer et faire un test sur l'ensemble des procédures de ton projet.
C'est plus compliqué mais ça se fait aussi.

Sub removeCode()
Dim awi 'activeWorkbookItem(index)
Dim awcl As Integer 'activeWorkbook Component CountOfLines
Dim count As Integer 'how many potential code modules
Dim i As Integer 'loop counter
On Error Resume Next
count = ActiveWorkbook.VBProject.VBComponents.count
For i = 1 To count
Set awi = ActiveWorkbook.VBProject.VBComponents.Item(i)
if awi.CodeModule.Name = "ModuleX" then 'module à désactiver
awcl = awi.CodeModule.CountOfLines
awi.CodeModule.DeleteLines 1, awcl
end if
Next i
Set awi = Nothing ' Release the object
End Sub

"Christophe B." wrote in message
news:
Bonjour,

J'ai une boucle if dans laquelle il y a une msgbox demandant si on veut
sauvegarder. Si oui, ca supprime les feuilles dont on a plus besoin et ca
sauvegarde. Jusque là tout va bien :)
Est-il possible de désactiver qques macros de ce nouveau fichier avant la
sauvegarde?

Merci,

Christophe.B


Avatar
Christophe B.
en fait, j'ai trouvé tout simple... et ca marche chez moi!

:)) et merci au fait ;)

If ThisWorkbook.Name <> "File.xls" Then
Sheet1.Delete
ThisWorkbook.VBProject.VBComponents.Remove
End If

"Dude" wrote:

oui c'est possible. En gros tu supprimes les macros dans ton nouvel
enregistrement.
tu as deux solutions :
1 - regrouper toutes les macros à désactiver dans un seul module (exemple
ci-dessous)
2 - déclarer un "array" contenant le nom de toutes les macros que tu veux
supprimer et faire un test sur l'ensemble des procédures de ton projet.
C'est plus compliqué mais ça se fait aussi.

Sub removeCode()
Dim awi 'activeWorkbookItem(index)
Dim awcl As Integer 'activeWorkbook Component CountOfLines
Dim count As Integer 'how many potential code modules
Dim i As Integer 'loop counter
On Error Resume Next
count = ActiveWorkbook.VBProject.VBComponents.count
For i = 1 To count
Set awi = ActiveWorkbook.VBProject.VBComponents.Item(i)
if awi.CodeModule.Name = "ModuleX" then 'module à désactiver
awcl = awi.CodeModule.CountOfLines
awi.CodeModule.DeleteLines 1, awcl
end if
Next i
Set awi = Nothing ' Release the object
End Sub

"Christophe B." wrote in message
news:
Bonjour,

J'ai une boucle if dans laquelle il y a une msgbox demandant si on veut
sauvegarder. Si oui, ca supprime les feuilles dont on a plus besoin et ca
sauvegarde. Jusque là tout va bien :)
Est-il possible de désactiver qques macros de ce nouveau fichier avant la
sauvegarde?

Merci,

Christophe.B