Dans une procedure d'un classeur nous avons introduit une=20
commande permettant de detruire tous les modules du=20
classeur, cette phase de destruction est suivi dans la=20
foul=E9e d'une fonction save du classeur.
A l'observation, le classeur affich=E9 ne pr=E9sente plus=20
aucun module mais celui qui a =E9t=E9 sauv=E9 en garde toujours=20
au moins deux qui n'=E9tait donc pas supprim=E9s au moment de=20
la sauvegarde...
La procedure de destruction utilis=E9 est la suivante
Public Function Suppression_Module(Val_Aux As String)
'Suppression Modules
For i =3D 1 To 1000
Set VBP =3D ActiveWorkbook.VBProject
On Error Resume Next
VBP.VBComponents.Remove VBP.VBComponents(Val_Aux)
If Err Then
Debug.Print "Sortie sur Exit sub " & Val_Aux & " "=20
& i
Exit Function
End If
Next i
Debug.Print "Sortie normale du sub " & Val_Aux & " " & i
End Function
Nous avons essayer de la synchroniser la suite des=20
op=E9ration et entre autre le save sur la disparition=20
effective de chaque module de la collection des modules.=20
Mais est rest=E9 sans succ=E8s sur les modules qui ne veulent=20
absolument pas disparaitre tant que le code est en cour=20
d'execution et qui sont donc sauv=E9s dans le classeur.
La disparition effective ne semble =EAtre possible qu'=E0=20
l'=E9ch=E9ance compete du code lanc=E9, soit apr=E8s la sauvegarde=20
et en cons=E9quence cette souvegarde comporte encore qcq=20
modules irrascibles...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
j
pas sur de comprendre le pb si c'est ce que je crois que ça pourrait être, tu dois chercher à supprimer le module en cours, et ça, ça semble effectivement pas possible directement
Tu peux essayer un truc au début de la procédure, tu enregistres dans une variable l'adresse de thisworkbook (zaza=thisworkbook.fullname), puis tu enregistres le fichier sous rien.xls éventuellement dans les fichiers temporaires, par exemple thisworkbook.saveas("c:windowstemprien.xls"), et tu continues d'exécuter la macro depuis les fichiers temporaires : tu ouvres le fichier zaza par workbooks.open(zaza) et tu lui zappes sauvagement les modules avant de refermer le fichier "temporaire" par thisworkbook.close(false) ok, c'est pas propre, il reste un petit rien dans les temp, mais ça règle le pb des modules récalcitrants... --
http://jacxl.free.fr/
"Alain79" a écrit dans le message de news: 048001c3c564$a8222f80$ Dans une procedure d'un classeur nous avons introduit une commande permettant de detruire tous les modules du classeur, cette phase de destruction est suivi dans la foulée d'une fonction save du classeur.
A l'observation, le classeur affiché ne présente plus aucun module mais celui qui a été sauvé en garde toujours au moins deux qui n'était donc pas supprimés au moment de la sauvegarde...
La procedure de destruction utilisé est la suivante
Public Function Suppression_Module(Val_Aux As String) 'Suppression Modules For i = 1 To 1000 Set VBP = ActiveWorkbook.VBProject On Error Resume Next VBP.VBComponents.Remove VBP.VBComponents(Val_Aux) If Err Then Debug.Print "Sortie sur Exit sub " & Val_Aux & " " & i Exit Function End If Next i Debug.Print "Sortie normale du sub " & Val_Aux & " " & i End Function
Nous avons essayer de la synchroniser la suite des opération et entre autre le save sur la disparition effective de chaque module de la collection des modules. Mais est resté sans succès sur les modules qui ne veulent absolument pas disparaitre tant que le code est en cour d'execution et qui sont donc sauvés dans le classeur.
La disparition effective ne semble être possible qu'à l'échéance compete du code lancé, soit après la sauvegarde et en conséquence cette souvegarde comporte encore qcq modules irrascibles...
pas sur de comprendre le pb
si c'est ce que je crois que ça pourrait être, tu dois chercher à supprimer
le module en cours, et ça, ça semble effectivement pas possible directement
Tu peux essayer un truc
au début de la procédure, tu enregistres dans une variable l'adresse de
thisworkbook (zaza=thisworkbook.fullname), puis tu enregistres le fichier
sous rien.xls éventuellement dans les fichiers temporaires, par exemple
thisworkbook.saveas("c:windowstemprien.xls"), et tu continues d'exécuter
la macro depuis les fichiers temporaires :
tu ouvres le fichier zaza par workbooks.open(zaza) et tu lui zappes
sauvagement les modules avant de refermer le fichier "temporaire" par
thisworkbook.close(false)
ok, c'est pas propre, il reste un petit rien dans les temp, mais ça règle le
pb des modules récalcitrants...
--
J@C
http://jacxl.free.fr/
"Alain79" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 048001c3c564$a8222f80$a001280a@phx.gbl...
Dans une procedure d'un classeur nous avons introduit une
commande permettant de detruire tous les modules du
classeur, cette phase de destruction est suivi dans la
foulée d'une fonction save du classeur.
A l'observation, le classeur affiché ne présente plus
aucun module mais celui qui a été sauvé en garde toujours
au moins deux qui n'était donc pas supprimés au moment de
la sauvegarde...
La procedure de destruction utilisé est la suivante
Public Function Suppression_Module(Val_Aux As String)
'Suppression Modules
For i = 1 To 1000
Set VBP = ActiveWorkbook.VBProject
On Error Resume Next
VBP.VBComponents.Remove VBP.VBComponents(Val_Aux)
If Err Then
Debug.Print "Sortie sur Exit sub " & Val_Aux & " "
& i
Exit Function
End If
Next i
Debug.Print "Sortie normale du sub " & Val_Aux & " " & i
End Function
Nous avons essayer de la synchroniser la suite des
opération et entre autre le save sur la disparition
effective de chaque module de la collection des modules.
Mais est resté sans succès sur les modules qui ne veulent
absolument pas disparaitre tant que le code est en cour
d'execution et qui sont donc sauvés dans le classeur.
La disparition effective ne semble être possible qu'à
l'échéance compete du code lancé, soit après la sauvegarde
et en conséquence cette souvegarde comporte encore qcq
modules irrascibles...
pas sur de comprendre le pb si c'est ce que je crois que ça pourrait être, tu dois chercher à supprimer le module en cours, et ça, ça semble effectivement pas possible directement
Tu peux essayer un truc au début de la procédure, tu enregistres dans une variable l'adresse de thisworkbook (zaza=thisworkbook.fullname), puis tu enregistres le fichier sous rien.xls éventuellement dans les fichiers temporaires, par exemple thisworkbook.saveas("c:windowstemprien.xls"), et tu continues d'exécuter la macro depuis les fichiers temporaires : tu ouvres le fichier zaza par workbooks.open(zaza) et tu lui zappes sauvagement les modules avant de refermer le fichier "temporaire" par thisworkbook.close(false) ok, c'est pas propre, il reste un petit rien dans les temp, mais ça règle le pb des modules récalcitrants... --
http://jacxl.free.fr/
"Alain79" a écrit dans le message de news: 048001c3c564$a8222f80$ Dans une procedure d'un classeur nous avons introduit une commande permettant de detruire tous les modules du classeur, cette phase de destruction est suivi dans la foulée d'une fonction save du classeur.
A l'observation, le classeur affiché ne présente plus aucun module mais celui qui a été sauvé en garde toujours au moins deux qui n'était donc pas supprimés au moment de la sauvegarde...
La procedure de destruction utilisé est la suivante
Public Function Suppression_Module(Val_Aux As String) 'Suppression Modules For i = 1 To 1000 Set VBP = ActiveWorkbook.VBProject On Error Resume Next VBP.VBComponents.Remove VBP.VBComponents(Val_Aux) If Err Then Debug.Print "Sortie sur Exit sub " & Val_Aux & " " & i Exit Function End If Next i Debug.Print "Sortie normale du sub " & Val_Aux & " " & i End Function
Nous avons essayer de la synchroniser la suite des opération et entre autre le save sur la disparition effective de chaque module de la collection des modules. Mais est resté sans succès sur les modules qui ne veulent absolument pas disparaitre tant que le code est en cour d'execution et qui sont donc sauvés dans le classeur.
La disparition effective ne semble être possible qu'à l'échéance compete du code lancé, soit après la sauvegarde et en conséquence cette souvegarde comporte encore qcq modules irrascibles...
michdenis
Bonjour Alain79,
Essaie ceci :
Si tu ne veux pas supprimer le code dans les module feuilles, inactive cette ligne de code dans la procédure en ajoutant une apostrophes en début de ligne... .DeleteLines 1, .CountOfLines Sinon, tout le code de projet situé dans les feuilles modules, modules(supprimer)et formulaires (supprimer) sera détruit..
'---------------------- Sub SupprimeToutCodeEtFormulaire()
Dim VBComp As Object Dim VBComps As Object
Set VBComps = ActiveWorkbook.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 '----------------------
Salutations!
Salutations!
"Alain79" a écrit dans le message de news:048001c3c564$a8222f80$ Dans une procedure d'un classeur nous avons introduit une commande permettant de detruire tous les modules du classeur, cette phase de destruction est suivi dans la foulée d'une fonction save du classeur.
A l'observation, le classeur affiché ne présente plus aucun module mais celui qui a été sauvé en garde toujours au moins deux qui n'était donc pas supprimés au moment de la sauvegarde...
La procedure de destruction utilisé est la suivante
Public Function Suppression_Module(Val_Aux As String) 'Suppression Modules For i = 1 To 1000 Set VBP = ActiveWorkbook.VBProject On Error Resume Next VBP.VBComponents.Remove VBP.VBComponents(Val_Aux) If Err Then Debug.Print "Sortie sur Exit sub " & Val_Aux & " " & i Exit Function End If Next i Debug.Print "Sortie normale du sub " & Val_Aux & " " & i End Function
Nous avons essayer de la synchroniser la suite des opération et entre autre le save sur la disparition effective de chaque module de la collection des modules. Mais est resté sans succès sur les modules qui ne veulent absolument pas disparaitre tant que le code est en cour d'execution et qui sont donc sauvés dans le classeur.
La disparition effective ne semble être possible qu'à l'échéance compete du code lancé, soit après la sauvegarde et en conséquence cette souvegarde comporte encore qcq modules irrascibles...
Bonjour Alain79,
Essaie ceci :
Si tu ne veux pas supprimer le code dans les module feuilles, inactive cette ligne de code dans la procédure en ajoutant une
apostrophes en début de ligne...
.DeleteLines 1, .CountOfLines
Sinon, tout le code de projet situé dans les feuilles modules, modules(supprimer)et formulaires (supprimer) sera détruit..
'----------------------
Sub SupprimeToutCodeEtFormulaire()
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = ActiveWorkbook.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
'----------------------
Salutations!
Salutations!
"Alain79" <anonymous@discussions.microsoft.com> a écrit dans le message de news:048001c3c564$a8222f80$a001280a@phx.gbl...
Dans une procedure d'un classeur nous avons introduit une
commande permettant de detruire tous les modules du
classeur, cette phase de destruction est suivi dans la
foulée d'une fonction save du classeur.
A l'observation, le classeur affiché ne présente plus
aucun module mais celui qui a été sauvé en garde toujours
au moins deux qui n'était donc pas supprimés au moment de
la sauvegarde...
La procedure de destruction utilisé est la suivante
Public Function Suppression_Module(Val_Aux As String)
'Suppression Modules
For i = 1 To 1000
Set VBP = ActiveWorkbook.VBProject
On Error Resume Next
VBP.VBComponents.Remove VBP.VBComponents(Val_Aux)
If Err Then
Debug.Print "Sortie sur Exit sub " & Val_Aux & " "
& i
Exit Function
End If
Next i
Debug.Print "Sortie normale du sub " & Val_Aux & " " & i
End Function
Nous avons essayer de la synchroniser la suite des
opération et entre autre le save sur la disparition
effective de chaque module de la collection des modules.
Mais est resté sans succès sur les modules qui ne veulent
absolument pas disparaitre tant que le code est en cour
d'execution et qui sont donc sauvés dans le classeur.
La disparition effective ne semble être possible qu'à
l'échéance compete du code lancé, soit après la sauvegarde
et en conséquence cette souvegarde comporte encore qcq
modules irrascibles...
Si tu ne veux pas supprimer le code dans les module feuilles, inactive cette ligne de code dans la procédure en ajoutant une apostrophes en début de ligne... .DeleteLines 1, .CountOfLines Sinon, tout le code de projet situé dans les feuilles modules, modules(supprimer)et formulaires (supprimer) sera détruit..
'---------------------- Sub SupprimeToutCodeEtFormulaire()
Dim VBComp As Object Dim VBComps As Object
Set VBComps = ActiveWorkbook.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 '----------------------
Salutations!
Salutations!
"Alain79" a écrit dans le message de news:048001c3c564$a8222f80$ Dans une procedure d'un classeur nous avons introduit une commande permettant de detruire tous les modules du classeur, cette phase de destruction est suivi dans la foulée d'une fonction save du classeur.
A l'observation, le classeur affiché ne présente plus aucun module mais celui qui a été sauvé en garde toujours au moins deux qui n'était donc pas supprimés au moment de la sauvegarde...
La procedure de destruction utilisé est la suivante
Public Function Suppression_Module(Val_Aux As String) 'Suppression Modules For i = 1 To 1000 Set VBP = ActiveWorkbook.VBProject On Error Resume Next VBP.VBComponents.Remove VBP.VBComponents(Val_Aux) If Err Then Debug.Print "Sortie sur Exit sub " & Val_Aux & " " & i Exit Function End If Next i Debug.Print "Sortie normale du sub " & Val_Aux & " " & i End Function
Nous avons essayer de la synchroniser la suite des opération et entre autre le save sur la disparition effective de chaque module de la collection des modules. Mais est resté sans succès sur les modules qui ne veulent absolument pas disparaitre tant que le code est en cour d'execution et qui sont donc sauvés dans le classeur.
La disparition effective ne semble être possible qu'à l'échéance compete du code lancé, soit après la sauvegarde et en conséquence cette souvegarde comporte encore qcq modules irrascibles...
JLuc
Salut Alain79, Et si tu essayais de lancer cette procedure via un autre classeur? Tu ouvres le classeur a purger, tu supprimes les modules et tu le sauves. A+ JLuc
Dans une procedure d'un classeur nous avons introduit une commande permettant de detruire tous les modules du classeur, cette phase de destruction est suivi dans la foulée d'une fonction save du classeur.
A l'observation, le classeur affiché ne présente plus aucun module mais celui qui a été sauvé en garde toujours au moins deux qui n'était donc pas supprimés au moment de la sauvegarde...
La procedure de destruction utilisé est la suivante
Public Function Suppression_Module(Val_Aux As String) 'Suppression Modules For i = 1 To 1000 Set VBP = ActiveWorkbook.VBProject On Error Resume Next VBP.VBComponents.Remove VBP.VBComponents(Val_Aux) If Err Then Debug.Print "Sortie sur Exit sub " & Val_Aux & " " & i Exit Function End If Next i Debug.Print "Sortie normale du sub " & Val_Aux & " " & i End Function
Nous avons essayer de la synchroniser la suite des opération et entre autre le save sur la disparition effective de chaque module de la collection des modules. Mais est resté sans succès sur les modules qui ne veulent absolument pas disparaitre tant que le code est en cour d'execution et qui sont donc sauvés dans le classeur.
La disparition effective ne semble être possible qu'à l'échéance compete du code lancé, soit après la sauvegarde et en conséquence cette souvegarde comporte encore qcq modules irrascibles...
Salut Alain79,
Et si tu essayais de lancer cette procedure via un autre classeur?
Tu ouvres le classeur a purger, tu supprimes les modules et tu le sauves.
A+
JLuc
Dans une procedure d'un classeur nous avons introduit une
commande permettant de detruire tous les modules du
classeur, cette phase de destruction est suivi dans la
foulée d'une fonction save du classeur.
A l'observation, le classeur affiché ne présente plus
aucun module mais celui qui a été sauvé en garde toujours
au moins deux qui n'était donc pas supprimés au moment de
la sauvegarde...
La procedure de destruction utilisé est la suivante
Public Function Suppression_Module(Val_Aux As String)
'Suppression Modules
For i = 1 To 1000
Set VBP = ActiveWorkbook.VBProject
On Error Resume Next
VBP.VBComponents.Remove VBP.VBComponents(Val_Aux)
If Err Then
Debug.Print "Sortie sur Exit sub " & Val_Aux & " "
& i
Exit Function
End If
Next i
Debug.Print "Sortie normale du sub " & Val_Aux & " " & i
End Function
Nous avons essayer de la synchroniser la suite des
opération et entre autre le save sur la disparition
effective de chaque module de la collection des modules.
Mais est resté sans succès sur les modules qui ne veulent
absolument pas disparaitre tant que le code est en cour
d'execution et qui sont donc sauvés dans le classeur.
La disparition effective ne semble être possible qu'à
l'échéance compete du code lancé, soit après la sauvegarde
et en conséquence cette souvegarde comporte encore qcq
modules irrascibles...
Salut Alain79, Et si tu essayais de lancer cette procedure via un autre classeur? Tu ouvres le classeur a purger, tu supprimes les modules et tu le sauves. A+ JLuc
Dans une procedure d'un classeur nous avons introduit une commande permettant de detruire tous les modules du classeur, cette phase de destruction est suivi dans la foulée d'une fonction save du classeur.
A l'observation, le classeur affiché ne présente plus aucun module mais celui qui a été sauvé en garde toujours au moins deux qui n'était donc pas supprimés au moment de la sauvegarde...
La procedure de destruction utilisé est la suivante
Public Function Suppression_Module(Val_Aux As String) 'Suppression Modules For i = 1 To 1000 Set VBP = ActiveWorkbook.VBProject On Error Resume Next VBP.VBComponents.Remove VBP.VBComponents(Val_Aux) If Err Then Debug.Print "Sortie sur Exit sub " & Val_Aux & " " & i Exit Function End If Next i Debug.Print "Sortie normale du sub " & Val_Aux & " " & i End Function
Nous avons essayer de la synchroniser la suite des opération et entre autre le save sur la disparition effective de chaque module de la collection des modules. Mais est resté sans succès sur les modules qui ne veulent absolument pas disparaitre tant que le code est en cour d'execution et qui sont donc sauvés dans le classeur.
La disparition effective ne semble être possible qu'à l'échéance compete du code lancé, soit après la sauvegarde et en conséquence cette souvegarde comporte encore qcq modules irrascibles...