Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
u5MN1CNNHHA.448@TK2MSFTNGP04.phx.gbl...
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
u5MN1CNNHHA.448@TK2MSFTNGP04.phx.gbl...
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" a écrit dans le message de news:
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" a écrit dans le message de news:
eiKjf$Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
evIGZRONHHA.2236@TK2MSFTNGP02.phx.gbl...
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
eiKjf$NNHHA.1872@TK2MSFTNGP04.phx.gbl...
Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
u5MN1CNNHHA.448@TK2MSFTNGP04.phx.gbl...
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" a écrit dans le message de news:
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" a écrit dans le message de news:
eiKjf$Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" a écrit dans le message de news:
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" a écrit dans le message de news:
eiKjf$Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
evIGZRONHHA.2236@TK2MSFTNGP02.phx.gbl...
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
eiKjf$NNHHA.1872@TK2MSFTNGP04.phx.gbl...
Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
u5MN1CNNHHA.448@TK2MSFTNGP04.phx.gbl...
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" a écrit dans le message de news:
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" a écrit dans le message de news:
eiKjf$Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" a écrit dans le message de news:
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" a écrit dans le message de news:
eiKjf$Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
evIGZRONHHA.2236@TK2MSFTNGP02.phx.gbl...
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
eiKjf$NNHHA.1872@TK2MSFTNGP04.phx.gbl...
Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
u5MN1CNNHHA.448@TK2MSFTNGP04.phx.gbl...
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" a écrit dans le message de news:
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" a écrit dans le message de news:
eiKjf$Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Si c'est cette procédure qui t'intéresse :
Et tu l'appelles de cette façon avec ta variable nommée fichier
SupprimeToutCodeEtFormulaire fichier
'--------------------------------
Sub SupprimeToutCodeEtFormulaire(NomFichier As string)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(NomFichier).VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'--------------------------------
"Manu" a écrit dans le message de news:
Est ce que cela concerne le : Sub SupprimeToutCodeEtFormulaire()
Car c'est celle ci qui m'interesse
Manu
"MichDenis" a écrit dans le message de news:J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" a écrit dans le message de news:
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" a écrit dans le message de news:
eiKjf$Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme
fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Si c'est cette procédure qui t'intéresse :
Et tu l'appelles de cette façon avec ta variable nommée fichier
SupprimeToutCodeEtFormulaire fichier
'--------------------------------
Sub SupprimeToutCodeEtFormulaire(NomFichier As string)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(NomFichier).VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'--------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
O0X3SeONHHA.3872@TK2MSFTNGP06.phx.gbl...
Est ce que cela concerne le : Sub SupprimeToutCodeEtFormulaire()
Car c'est celle ci qui m'interesse
Manu
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
ekXFBZONHHA.140@TK2MSFTNGP04.phx.gbl...
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
evIGZRONHHA.2236@TK2MSFTNGP02.phx.gbl...
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
eiKjf$NNHHA.1872@TK2MSFTNGP04.phx.gbl...
Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
u5MN1CNNHHA.448@TK2MSFTNGP04.phx.gbl...
Est t'il possible dans une macro d'en supprimer d'autres du meme
fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
Si c'est cette procédure qui t'intéresse :
Et tu l'appelles de cette façon avec ta variable nommée fichier
SupprimeToutCodeEtFormulaire fichier
'--------------------------------
Sub SupprimeToutCodeEtFormulaire(NomFichier As string)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(NomFichier).VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'--------------------------------
"Manu" a écrit dans le message de news:
Est ce que cela concerne le : Sub SupprimeToutCodeEtFormulaire()
Car c'est celle ci qui m'interesse
Manu
"MichDenis" a écrit dans le message de news:J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" a écrit dans le message de news:
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" a écrit dans le message de news:
eiKjf$Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme
fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" a écrit dans le message de news:
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" a écrit dans le message de news:
eiKjf$Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
evIGZRONHHA.2236@TK2MSFTNGP02.phx.gbl...
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
eiKjf$NNHHA.1872@TK2MSFTNGP04.phx.gbl...
Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
u5MN1CNNHHA.448@TK2MSFTNGP04.phx.gbl...
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu
J'ai ajouté une variable à partir de laquelle tu peux définir
le nom du fichier que tu désires.
'-----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
Dim Fichier As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
Fichier = ThisWorkbook.Name
SupprimerProcédure Fichier, DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(NomFichier As String, _
SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With Workbooks(NomFichier).VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
"Manu" a écrit dans le message de news:
Merci,
En fait mon fichier porte une variable "fichier" que dois je lui dire ?
Ce que tu as mis :
Set VBComps = Workbooks("NomDuClasseur.xls").VBProject.VBComponents
Ce que j'essais :
Set VBComps = ActiveWorkbook = fichier.VBProject.VBComponents
Mais ca ne fonctionne evidemment pas
Que puis je faire ?
"MichDenis" a écrit dans le message de news:
eiKjf$Pour supprimer n'importe quelle procédure d'un module quelconque, tu
appelles la
procédure "Effacer procédure" et tu renseignes les 2 variables :
A ) le nom de la procédure à effacer
B ) le nom du module où elle est située.
Ces 2 Procédures sont à copiées dans un module Standard.
'----------------------------------
Sub EffacerProcédure()
Dim DeleteSubName As String
Dim ModuleName As String
'Variable à renseigner
DeleteSubName = "Sub Workbook_Open"
ModuleName = "ThisWorkbook"
SupprimerProcédure DeleteSubName, ModuleName
End Sub
'----------------------------------
Sub SupprimerProcédure(SonNom As String, SonModule As String)
Dim Début As Integer, Fin As Integer
Dim A As Integer, B As Integer, Nb As Integer
Dim Comp As Object
With ThisWorkbook.VBProject.VBComponents _
(SonModule).CodeModule
Nb = .CountOfLines
For A = 1 To Nb
If InStr(1, .Lines(A, 1), SonNom, _
vbTextCompare) <> 0 Then
Début = A
For B = A + 1 To Nb
If InStr(1, .Lines(B, 1), "End Sub", _
vbTextCompare) <> 0 Then
Fin = B - Début + 1
Exit For
End If
Next
If Fin <> 0 Then
.DeleteLines Début, Fin
Exit Sub
End If
End If
Next
End With
End Sub
'----------------------------------
"Manu" a écrit dans le message de news:
Est t'il possible dans une macro d'en supprimer d'autres du meme fichier,
voir meme d'auto supprimer automatiquement une macro lorsqu'elle à fini
son
boulot.
Sub test()
-----
etc -----
----
-----
Sup cette macro en cours
Merci
Manu