Mission Impossible

Ilino

XLDnaute Barbatruc
Bonjour Forum
Ciao a tutti .. Ciao Forum
Mission Impossible
Je cherche un code qui fait supprimer toutes les données des onglets après une date bien définie est il possibl ???:rolleyes:
Grazie
 

Efgé

XLDnaute Barbatruc
Re : Mission Impossible

Bonjour Ilino
A mettre dans le ThisWorkbook:
VB:
Private Sub Workbook_Open()
Dim Sh As Worksheet
If Date >= DateSerial(2013, 12, 25) Then
    For Each Sh In ThisWorkbook.Sheets
        Sh.UsedRange.Clear
    Next Sh
End If
ThisWorkbook.Save
End Sub
A partir du 25/12/2013 tout est effacé.

ATTENTION c'est sans retour

Cordialement
 

Efgé

XLDnaute Barbatruc
Re : Mission Impossible

Re
Avec ça (je ne me rappel plus de l'auteur, désolé) tu n'auras plus RIEN, même pas ce code (mission impossible disais tu ? hé bien le code s'autodétruit :D)
VB:
Private Sub Workbook_Open()
Dim Sh As Worksheet
Dim VBC As Object
If Date >= DateSerial(2013, 9, 8) Then
    With ActiveWorkbook.VBProject
        For Each VBC In .VBComponents
            If VBC.Type = 100 Then
                With VBC.CodeModule
                .DeleteLines 1, .CountOfLines
                .CodePane.Window.Close
                End With
            Else: .VBComponents.Remove VBC
            End If
        Next VBC
    End With
    For Each Sh In ThisWorkbook.Sheets
        Sh.UsedRange.Clear
    Next Sh
End If
ThisWorkbook.Save
End Sub
Cordialement
 

Efgé

XLDnaute Barbatruc
Re : Mission Impossible

Re
Changement de méthode, on détruit tout pour ne laisser qu'une feuille vierge:

VB:
Private Sub Workbook_Open()
Dim I&
Dim VBC As Object

If Date >= DateSerial(2013, 9, 8) Then
    Sheets.Add After:=Sheets(Sheets.Count)
    With ActiveWorkbook.VBProject
        For Each VBC In .VBComponents
            If VBC.Type = 100 Then
                With VBC.CodeModule
                .DeleteLines 1, .CountOfLines
                .CodePane.Window.Close
                End With
            Else: .VBComponents.Remove VBC
            End If
        Next VBC
    End With
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    For I = ThisWorkbook.Sheets.Count - 1 To 1 Step -1
        Sheets(I).Delete
    Next I
End If
ThisWorkbook.Save
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

P.S Bhein oui, TOM, mais pour le vieux que je suis c'est plutot JIM :D

Cordialement
 
Dernière édition:

Ilino

XLDnaute Barbatruc
Re : Mission Impossible

Bonjour TOM
j'ai un autre soucis avec le code Mission Possibl
j'ai verrouillé le code vba ( j ai fait un mot de passe) mais ca n'as pas fonctionné ????
Graziz

PS : j ai un message d'erreur d’exécution 50289
Impossible d'effectuer cette opération tant que le projet est protégé ???:confused:
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Mission Impossible

Bonjour Ilino

Je ne connais pas de méthode pour déprotéger le projet VBA.
Les seules pistes que l'on trouve sur le net reposes sur des SendKeys (ce qui occasionne d'autres soucis).
Il est d'ailleurs logique que la déprotection d'un projet ne soit pas aussi simple que ça, non ?

Codialement
 

Ilino

XLDnaute Barbatruc
Re : Mission Impossible

Merci pour la réponse
je pense que j'ai mal expliqué mon souci
j'ai protégé ton code ( via propriété de VBAprojects) par un code ex Tom et lors de son exécution ( autodétruit) ça n"a pas marché???
A+
 

Pièces jointes

  • Mission Impossible TOM.xlsm
    17 KB · Affichages: 57
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Mission Impossible

Re
Tu as bien expliqué au contraire, mais si tu veux accéder au projet pour supprimer les codes et modules, il faut évidemment déprotéger le projet.
Donc, il faut le faire par macro, et cela n'est pas dans mes compétences.
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 396
Messages
2 088 053
Membres
103 708
dernier inscrit
Sisy