OVH Cloud OVH Cloud

Annihiler un classeur

7 réponses
Avatar
garnote
Bonjour tout le monde,

Si un uitisateur ouvre mon classeur, j'aimerais que
ce classeur s'auto-détruise au bout de 30 secondes.
Il me semble avoir vu une macro MPFE qui peut faire ça.
Sauriez-vous me mettre sur la piste ?

Merci

Serge

7 réponses

Avatar
Starwing
Salut garnotte... :-))))

http://www.excelabo.net/xl/repertoires.php

Suppression de répertoires. Comment supprimer depuis excel
des répertoires avec leurs sous répertoires et tous les
fichiers qu'ils contiennent ?


Starwing
-----Message d'origine-----
Bonjour tout le monde,

Si un uitisateur ouvre mon classeur, j'aimerais que
ce classeur s'auto-détruise au bout de 30 secondes.
Il me semble avoir vu une macro MPFE qui peut faire ça.
Sauriez-vous me mettre sur la piste ?

Merci

Serge


.



Avatar
Denis Michon
Bonjour Garnote , le terroriste excellien !


'-----------------------------
Private Sub Workbook_Open()

Application.OnTime Now + TimeValue("00:00:15"), "Suicide"

End Sub
'-----------------------------


Bob Umlas a conçu la propriété ChangeFileAccess. Le reste du code est de
Chip Pearson
'-----------------------------
Sub Suicide()

Dim FName As String
Dim Ndx As Integer
With ThisWorkbook
.Save
For Ndx = 1 To Application.RecentFiles.Count
If Application.RecentFiles(Ndx).Path = .FullName Then
Application.RecentFiles(Ndx).Delete
Exit For
End If
Next Ndx

.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close SaveChanges:úlse
End With
End Sub
'-----------------------------


Et que ça saute ...

;-)


Salutations!








"garnote" a écrit dans le message de news:De3Cb.50367$
Bonjour tout le monde,

Si un uitisateur ouvre mon classeur, j'aimerais que
ce classeur s'auto-détruise au bout de 30 secondes.
Il me semble avoir vu une macro MPFE qui peut faire ça.
Sauriez-vous me mettre sur la piste ?

Merci

Serge
Avatar
Michel Pierron
Salut Garnote;
Plutôt que d'utiliser Application.Wait qui affiche le sablier:

Private Sub Workbook_Open()
Dim Top As Single
Top = Timer
While Timer < Top + 30: DoEvents: Wend
With ThisWorkbook
.Save
.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close False
End With
End Sub

MP

"garnote" a écrit dans le message de
news:De3Cb.50367$
Bonjour tout le monde,

Si un uitisateur ouvre mon classeur, j'aimerais que
ce classeur s'auto-détruise au bout de 30 secondes.
Il me semble avoir vu une macro MPFE qui peut faire ça.
Sauriez-vous me mettre sur la piste ?

Merci

Serge




Avatar
garnote
Yep !
Et pour éviter de perdre la macro qui tue, j'imagine qu'il
faut la cacher dans le classeur de macros personnelles.
Comme amusement maison, c'est rigolo mais sur le réseau
de mon collège !?!?

;-)))

Serge


"Denis Michon" <denis a écrit dans le message de news:
3K3Cb.50371$
Bonjour Garnote , le terroriste excellien !


'-----------------------------
Private Sub Workbook_Open()

Application.OnTime Now + TimeValue("00:00:15"), "Suicide"

End Sub
'-----------------------------


Bob Umlas a conçu la propriété ChangeFileAccess. Le reste du code est de
Chip Pearson
'-----------------------------
Sub Suicide()

Dim FName As String
Dim Ndx As Integer
With ThisWorkbook
.Save
For Ndx = 1 To Application.RecentFiles.Count
If Application.RecentFiles(Ndx).Path = .FullName Then
Application.RecentFiles(Ndx).Delete
Exit For
End If
Next Ndx

.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close SaveChanges:úlse
End With
End Sub
'-----------------------------


Et que ça saute ...

;-)


Salutations!








"garnote" a écrit dans le message de
news:De3Cb.50367$

Bonjour tout le monde,

Si un uitisateur ouvre mon classeur, j'aimerais que
ce classeur s'auto-détruise au bout de 30 secondes.
Il me semble avoir vu une macro MPFE qui peut faire ça.
Sauriez-vous me mettre sur la piste ?

Merci

Serge





Avatar
gee-dee-
Bonsoir Serge,

à mon modeste avis il me semble qu'un classeur ne peut s'autodétruire.....??
tout au plus se fermer sans avertissement !!!!!
Mais sait-on jamais ???? (je suis toujours étonné des possibilités d'EXCEL)
peut etre en lancant un script Vbs qui aprés fermeture et qui ferait un kill
????

un probleme à résoudre garantir le fonctionnement de la macro dans tout les
cas ?????
(exemple désactivation des macros au démarrage)

une approche à améliorer , pour la fermeture sans avertissement :
tu as 30 secondes pour écrire garnote en ligne5 colonne 1 de la feuille 1
!!!

1: dans le module Thisworkbook

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:30"), "maProcedure"
End Sub

2: dans un module standard :
Sub maprocedure()
Application.DisplayAlerts = False
If Sheets("feuil1").Cells(5, 1).Value = "garnote" Then Exit Sub
ThisWorkbook.Saved = True
ThisWorkbook.Close
End Sub

@+
Avatar
Michel Pierron
Une autre façon de faire:
Private Sub Workbook_Open()
Dim objNB As Workbook
Set objNB = Workbooks.Add
ActiveWindow.Visible = False
Application.ScreenUpdating = True
With ThisWorkbook
Open .Path & "xx.bas" For Output As #1
Print #1, "Sub Temp"
Print #1, "Kill " & """" & .Path & "xx.bas" & """"
Print #1, "Workbooks(" & """" & .Name & """" & ").Close False"
Print #1, "Kill " & """" & .Path & "" & .Name & """"
Print #1, "ThisWorkbook.Close False"
Print #1, "End Sub"
Close #1
objNB.VBProject.VBComponents.Import Filename:=.Path & "xx.bas"
End With
Application.OnTime Now + TimeValue("00:00:15"), objNB.Name & "!Temp"
End Sub

MP

"garnote" a écrit dans le message de
news:De3Cb.50367$
Bonjour tout le monde,

Si un uitisateur ouvre mon classeur, j'aimerais que
ce classeur s'auto-détruise au bout de 30 secondes.
Il me semble avoir vu une macro MPFE qui peut faire ça.
Sauriez-vous me mettre sur la piste ?

Merci

Serge




Avatar
Denis Michon
Bonjour Garnote,

Pour mettre la procédure principale dans le perso.xls, tu peux faire comme ceci :

Dans le ThisWorkbook du classeur
'-----------------------------
Private Sub Workbook_Open()

Application.OnTime Now + TimeValue("00:00:15"), "Appel_Au_Suicide"

End Sub


Dans un module Standard :
'-----------------------------
Sub Appel_Au_Suicide()

Suicide ThisWorkbook.Name

End Sub
'-----------------------------


Dans le ThisWorkbook
'-----------------------------
Sub Suicide(SonNom As String)

Dim FName As String
Dim Ndx As Integer
With Workbooks(SonNom)
.Save
For Ndx = 1 To Application.RecentFiles.Count
If Application.RecentFiles(Ndx).Path = .FullName Then
Application.RecentFiles(Ndx).Delete
Exit For
End If
Next Ndx
.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close SaveChanges:úlse
End With
End Sub




Salutations!



"garnote" a écrit dans le message de news:974Cb.50511$
Yep !
Et pour éviter de perdre la macro qui tue, j'imagine qu'il
faut la cacher dans le classeur de macros personnelles.
Comme amusement maison, c'est rigolo mais sur le réseau
de mon collège !?!?

;-)))

Serge


"Denis Michon" <denis a écrit dans le message de news:
3K3Cb.50371$
Bonjour Garnote , le terroriste excellien !


'-----------------------------
Private Sub Workbook_Open()

Application.OnTime Now + TimeValue("00:00:15"), "Suicide"

End Sub
'-----------------------------


Bob Umlas a conçu la propriété ChangeFileAccess. Le reste du code est de
Chip Pearson
'-----------------------------
Sub Suicide()

Dim FName As String
Dim Ndx As Integer
With ThisWorkbook
.Save
For Ndx = 1 To Application.RecentFiles.Count
If Application.RecentFiles(Ndx).Path = .FullName Then
Application.RecentFiles(Ndx).Delete
Exit For
End If
Next Ndx

.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close SaveChanges:úlse
End With
End Sub
'-----------------------------


Et que ça saute ...

;-)


Salutations!








"garnote" a écrit dans le message de
news:De3Cb.50367$

Bonjour tout le monde,

Si un uitisateur ouvre mon classeur, j'aimerais que
ce classeur s'auto-détruise au bout de 30 secondes.
Il me semble avoir vu une macro MPFE qui peut faire ça.
Sauriez-vous me mettre sur la piste ?

Merci

Serge