Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler une
macro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je ne
vous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler une
macro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je ne
vous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
NoSpam_j.thiernesse@skynet.be
Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler une
macro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je ne
vous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" a écrit dans le message de
news:
Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
une
macro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
ne
vous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" <NoSpam_j.thiernesse@skynet.be> a écrit dans le message de
news:OrcjdoHIEHA.2924@TK2MSFTNGP09.phx.gbl...
Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
une
macro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
ne
vous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
NoSpam_j.thiernesse@skynet.be
Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" a écrit dans le message de
news:
Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
une
macro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
ne
vous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site de
référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la 2000ème
macro
qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un problème
existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
"michdenis" a écrit dans le message news:Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" a écrit dans le message de
news:Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture
du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
unemacro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
nevous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site de
référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la 2000ème
macro
qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un problème
existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
NoSpam_j.thiernesse@skynet.be
"michdenis" <michdenis@hotmail.com> a écrit dans le message news:
emHLm6HIEHA.3528@TK2MSFTNGP09.phx.gbl...
Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" <NoSpam_j.thiernesse@skynet.be> a écrit dans le message de
news:OrcjdoHIEHA.2924@TK2MSFTNGP09.phx.gbl...
Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture
du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
une
macro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
ne
vous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
NoSpam_j.thiernesse@skynet.be
Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site de
référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la 2000ème
macro
qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un problème
existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
"michdenis" a écrit dans le message news:Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" a écrit dans le message de
news:Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture
du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
unemacro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
nevous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site de
référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la 2000ème macro
qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un problème
existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
"michdenis" a écrit dans le message news:Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" a écrit dans le message de
news:Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
unemacro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
nevous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site de
référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la 2000ème macro
qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un problème
existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
NoSpam_j.thiernesse@skynet.be
"michdenis" <michdenis@hotmail.com> a écrit dans le message news:
emHLm6HIEHA.3528@TK2MSFTNGP09.phx.gbl...
Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" <NoSpam_j.thiernesse@skynet.be> a écrit dans le message de
news:OrcjdoHIEHA.2924@TK2MSFTNGP09.phx.gbl...
Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
une
macro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
ne
vous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
NoSpam_j.thiernesse@skynet.be
Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site de
référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la 2000ème macro
qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un problème
existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
"michdenis" a écrit dans le message news:Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" a écrit dans le message de
news:Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
unemacro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
nevous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Meuh non, Jacques :o)
J'avais aussi la même réaction que toi au début. Si tu mets ta macro
auto-destructrice dans le ThisWorkbook et que tu lui demandes de
détruire ThisWorkbook, ne me demande pas pourquoi mais elle le fait.
Le seul détail que j'ai eu l'occasion de rencontrer est un vrai faux
message d'alerte macro alors qu'il n'y a ni macro, ni module vide et ce
message n'apparait qu'à la première ouverture.
Un exemple tiré d'un développement précédent :
Un clic sur une image crée un tarif personnalisé pour un client et
enlève les macros du fichier. Toutes les macros sont dans ThisWorkbook.
Le clic lance transfert_4.
Sub transfert_4()
'plein d'actions diverses et variées telles que sauvegarde du
'fichier original puis ...
Application.Calculation = xlCalculationAutomatic
On Error Resume Next
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.deleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
End Sub
et zou, a pu macro. Je peux t'envoyer l'exemple original si tu le
demandes gentiment :o) (900 ko zippé -> 202 ko)
@+
FxM
Jacquouille wrote:Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site de
référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la 2000ème
macro
qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un
problème
existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
"michdenis" a écrit dans le message news:Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" a écrit dans le message de
news:Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture
du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
unemacro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
nevous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Meuh non, Jacques :o)
J'avais aussi la même réaction que toi au début. Si tu mets ta macro
auto-destructrice dans le ThisWorkbook et que tu lui demandes de
détruire ThisWorkbook, ne me demande pas pourquoi mais elle le fait.
Le seul détail que j'ai eu l'occasion de rencontrer est un vrai faux
message d'alerte macro alors qu'il n'y a ni macro, ni module vide et ce
message n'apparait qu'à la première ouverture.
Un exemple tiré d'un développement précédent :
Un clic sur une image crée un tarif personnalisé pour un client et
enlève les macros du fichier. Toutes les macros sont dans ThisWorkbook.
Le clic lance transfert_4.
Sub transfert_4()
'plein d'actions diverses et variées telles que sauvegarde du
'fichier original puis ...
Application.Calculation = xlCalculationAutomatic
On Error Resume Next
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.deleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
End Sub
et zou, a pu macro. Je peux t'envoyer l'exemple original si tu le
demandes gentiment :o) (900 ko zippé -> 202 ko)
@+
FxM
Jacquouille wrote:
Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site de
référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la 2000ème
macro
qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un
problème
existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
NoSpam_j.thiernesse@skynet.be
"michdenis" <michdenis@hotmail.com> a écrit dans le message news:
emHLm6HIEHA.3528@TK2MSFTNGP09.phx.gbl...
Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" <NoSpam_j.thiernesse@skynet.be> a écrit dans le message de
news:OrcjdoHIEHA.2924@TK2MSFTNGP09.phx.gbl...
Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture
du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
une
macro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
ne
vous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
NoSpam_j.thiernesse@skynet.be
Meuh non, Jacques :o)
J'avais aussi la même réaction que toi au début. Si tu mets ta macro
auto-destructrice dans le ThisWorkbook et que tu lui demandes de
détruire ThisWorkbook, ne me demande pas pourquoi mais elle le fait.
Le seul détail que j'ai eu l'occasion de rencontrer est un vrai faux
message d'alerte macro alors qu'il n'y a ni macro, ni module vide et ce
message n'apparait qu'à la première ouverture.
Un exemple tiré d'un développement précédent :
Un clic sur une image crée un tarif personnalisé pour un client et
enlève les macros du fichier. Toutes les macros sont dans ThisWorkbook.
Le clic lance transfert_4.
Sub transfert_4()
'plein d'actions diverses et variées telles que sauvegarde du
'fichier original puis ...
Application.Calculation = xlCalculationAutomatic
On Error Resume Next
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.deleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
End Sub
et zou, a pu macro. Je peux t'envoyer l'exemple original si tu le
demandes gentiment :o) (900 ko zippé -> 202 ko)
@+
FxM
Jacquouille wrote:Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site de
référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la 2000ème
macro
qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un
problème
existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
"michdenis" a écrit dans le message news:Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" a écrit dans le message de
news:Bonjour
Après avoir étudié les macros qui se mettent en marche dès l'ouverture
du
document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut bricoler
unemacro pour qu'elle s'auto-détruise dès que son boulot est terminé (ou
presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon PC, je
nevous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Meuh non, Jacques :o)
J'avais aussi la même réaction que toi au début. Si tu mets ta macro
auto-destructrice dans le ThisWorkbook et que tu lui demandes de
détruire ThisWorkbook, ne me demande pas pourquoi mais elle le fait.
Le seul détail que j'ai eu l'occasion de rencontrer est un vrai faux
message d'alerte macro alors qu'il n'y a ni macro, ni module vide et
ce message n'apparait qu'à la première ouverture.
Un exemple tiré d'un développement précédent :
Un clic sur une image crée un tarif personnalisé pour un client et
enlève les macros du fichier. Toutes les macros sont dans
ThisWorkbook.
Le clic lance transfert_4.
Sub transfert_4()
'plein d'actions diverses et variées telles que sauvegarde du
'fichier original puis ...
Application.Calculation = xlCalculationAutomatic
On Error Resume Next
With
ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.deleteLines 1, .CountOfLines .CodePane.Window.Close
End With
End Sub
et zou, a pu macro. Je peux t'envoyer l'exemple original si tu le
demandes gentiment :o) (900 ko zippé -> 202 ko)
@+
FxM
Jacquouille wrote:Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site
de référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la
2000ème macro qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un
problème existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
"michdenis" a écrit dans le message news:Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" a écrit dans le
message de
news:Bonjour
Après avoir étudié les macros qui se mettent en marche dès
l'ouverture du document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut
bricoler
unemacro pour qu'elle s'auto-détruise dès que son boulot est terminé
(ou presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon
PC, je
nevous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Meuh non, Jacques :o)
J'avais aussi la même réaction que toi au début. Si tu mets ta macro
auto-destructrice dans le ThisWorkbook et que tu lui demandes de
détruire ThisWorkbook, ne me demande pas pourquoi mais elle le fait.
Le seul détail que j'ai eu l'occasion de rencontrer est un vrai faux
message d'alerte macro alors qu'il n'y a ni macro, ni module vide et
ce message n'apparait qu'à la première ouverture.
Un exemple tiré d'un développement précédent :
Un clic sur une image crée un tarif personnalisé pour un client et
enlève les macros du fichier. Toutes les macros sont dans
ThisWorkbook.
Le clic lance transfert_4.
Sub transfert_4()
'plein d'actions diverses et variées telles que sauvegarde du
'fichier original puis ...
Application.Calculation = xlCalculationAutomatic
On Error Resume Next
With
ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.deleteLines 1, .CountOfLines .CodePane.Window.Close
End With
End Sub
et zou, a pu macro. Je peux t'envoyer l'exemple original si tu le
demandes gentiment :o) (900 ko zippé -> 202 ko)
@+
FxM
Jacquouille wrote:
Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site
de référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la
2000ème macro qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un
problème existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
NoSpam_j.thiernesse@skynet.be
"michdenis" <michdenis@hotmail.com> a écrit dans le message news:
emHLm6HIEHA.3528@TK2MSFTNGP09.phx.gbl...
Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" <NoSpam_j.thiernesse@skynet.be> a écrit dans le
message de
news:OrcjdoHIEHA.2924@TK2MSFTNGP09.phx.gbl...
Bonjour
Après avoir étudié les macros qui se mettent en marche dès
l'ouverture du document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut
bricoler
une
macro pour qu'elle s'auto-détruise dès que son boulot est terminé
(ou presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon
PC, je
ne
vous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
NoSpam_j.thiernesse@skynet.be
Meuh non, Jacques :o)
J'avais aussi la même réaction que toi au début. Si tu mets ta macro
auto-destructrice dans le ThisWorkbook et que tu lui demandes de
détruire ThisWorkbook, ne me demande pas pourquoi mais elle le fait.
Le seul détail que j'ai eu l'occasion de rencontrer est un vrai faux
message d'alerte macro alors qu'il n'y a ni macro, ni module vide et
ce message n'apparait qu'à la première ouverture.
Un exemple tiré d'un développement précédent :
Un clic sur une image crée un tarif personnalisé pour un client et
enlève les macros du fichier. Toutes les macros sont dans
ThisWorkbook.
Le clic lance transfert_4.
Sub transfert_4()
'plein d'actions diverses et variées telles que sauvegarde du
'fichier original puis ...
Application.Calculation = xlCalculationAutomatic
On Error Resume Next
With
ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.deleteLines 1, .CountOfLines .CodePane.Window.Close
End With
End Sub
et zou, a pu macro. Je peux t'envoyer l'exemple original si tu le
demandes gentiment :o) (900 ko zippé -> 202 ko)
@+
FxM
Jacquouille wrote:Bonjour
Merci pour vos infos.
Avant de demander, j'ai réfléchi (un peu) et j'ai consulté Mon site
de référence, mais j'en arrive toujours à la même conclusion.
Si on fait une macro pour détruire la première, reste l'autre.
Puis on fait une troisième pour détruire la deuxième....
et on arrive 15 jours plus tard, au Grand Prix suivant avec la
2000ème macro qui efface la 1999ème ????
Je vous remercie cependant tous deux de vous être penchés sur un
problème existentiel (???-)) )
--
Jacquouille conseille : http://www.excelabo.net
"michdenis" a écrit dans le message news:Bonjour Jacquouille,
Feuil1 représente le nom du module et nom de l'onglet de la feuille
'----------------------
Sub EffacerLaMacro()
ExécutionUneFois1 "Feuil1", "LeNomDeLaProcédureàEffacer"
End Sub
'----------------------
à placer dans un module standard.
'-----------------------
Sub ExécutionUneFois(NomModule As String, NomProcedure As String)
Dim A As Integer, B As Integer
With ThisWorkbook.VBProject.VBComponents(NomModule)
With .CodeModule
A = .ProcStartLine(NomProc, 0)
B = .ProcCountLines(NomProc, 0)
.DeleteLines A, B
End With
End With
End Sub
'-----------------------
Salutations!
"Jacquouille" a écrit dans le
message de
news:Bonjour
Après avoir étudié les macros qui se mettent en marche dès
l'ouverture du document, je me pose des questions sur l'inverse.
En Formule 1, on a dit que "ils" avaient programmé leurs mode
d'anti-patinage pour que le logiciel ne garde plus de traces de
programmation dès le départ effectué.
Suite à cela, je me pose la question de savoir comment on peut
bricoler
unemacro pour qu'elle s'auto-détruise dès que son boulot est terminé
(ou presque, puisque elle doit s'auto-détruire).
Ne me dites pas qu'elle tél à JPS et qu'il envoie un scud sur mon
PC, je
nevous croirai pas ...-)
Un grand merci et bonne fin de fête des Cloches.
--
Jacquouille conseille : http://www.excelabo.net
Salut François
Un grand merci pour ta gentillesse qui devient légendaire.
Mais, je t'en supplie, ne me fait pas le coup du Père ....François en
m'envoyant un truc Zippé.
Il déconne à chaque fois.
Si tu sais (ADSL) me l'envoyer en pas zippé?
Un grand merci et encore bonne fête -)
--
Jacquouille conseille : http://www.excelabo.net
Salut François
Un grand merci pour ta gentillesse qui devient légendaire.
Mais, je t'en supplie, ne me fait pas le coup du Père ....François en
m'envoyant un truc Zippé.
Il déconne à chaque fois.
Si tu sais (ADSL) me l'envoyer en pas zippé?
Un grand merci et encore bonne fête -)
--
Jacquouille conseille : http://www.excelabo.net
NoSpam_j.thiernesse@skynet.be
Salut François
Un grand merci pour ta gentillesse qui devient légendaire.
Mais, je t'en supplie, ne me fait pas le coup du Père ....François en
m'envoyant un truc Zippé.
Il déconne à chaque fois.
Si tu sais (ADSL) me l'envoyer en pas zippé?
Un grand merci et encore bonne fête -)
--
Jacquouille conseille : http://www.excelabo.net
J'ai essayé toutes vos macros, et aucune ne marche chez moi : elles
s'arrêtent toutes sur la ligne :
thisworkbook.vbproject.vbcomponents("Machin")...
Cette ligne enlève le module "ThisWorkbook".
Selon les cas, j'ai deux erreurs différentes :
La méthode 'VBProject' de l'objet '_Workbook' a échoué.
A priori, ce module existe toujours sauf si tu essaies deux fois la
ou
L'accès par programme au projet Visual Basic n'est pas fiable.
Ca, c'est plutôt la sécurité d'Excel (2002 ou +?) voire de l'antivirus
J'ai essayé toutes vos macros, et aucune ne marche chez moi : elles
s'arrêtent toutes sur la ligne :
thisworkbook.vbproject.vbcomponents("Machin")...
Cette ligne enlève le module "ThisWorkbook".
Selon les cas, j'ai deux erreurs différentes :
La méthode 'VBProject' de l'objet '_Workbook' a échoué.
A priori, ce module existe toujours sauf si tu essaies deux fois la
ou
L'accès par programme au projet Visual Basic n'est pas fiable.
Ca, c'est plutôt la sécurité d'Excel (2002 ou +?) voire de l'antivirus
J'ai essayé toutes vos macros, et aucune ne marche chez moi : elles
s'arrêtent toutes sur la ligne :
thisworkbook.vbproject.vbcomponents("Machin")...
Cette ligne enlève le module "ThisWorkbook".
Selon les cas, j'ai deux erreurs différentes :
La méthode 'VBProject' de l'objet '_Workbook' a échoué.
A priori, ce module existe toujours sauf si tu essaies deux fois la
ou
L'accès par programme au projet Visual Basic n'est pas fiable.
Ca, c'est plutôt la sécurité d'Excel (2002 ou +?) voire de l'antivirus