macro pour supprimer ttes les macro à une date precise

popeckjunior

XLDnaute Junior
bonsoir forum

je souhaite savoir s'il existe une macro qui permet de supprimer ttes les macro et formules d'un classeur à une date prédéterminé

merci de votre aide

bonne soiree
 

job75

XLDnaute Barbatruc
Re : macro pour supprimer ttes les macro à une date precise

Bonsoir popeckjunior,

Bien sûr, on peut presque tout faire en VBA...

Et on peut même imaginer plusieurs solutions.

Si vous y tenez vraiment, dites nous au moins pourquoi, on en meure d'envie.

A+
 

job75

XLDnaute Barbatruc
Re : macro pour supprimer ttes les macro à une date precise

Bonjour le fil, le forum,

Voici ce que l'on peut faire avec un fichier "exécuteur".

Mettez les 2 fichiers ci-joints dans le même dossier (répertoire).

Le fichier Efface peut-être un fichier .xla (macro complémentaire).

On peut aussi le mettre dans le dossier START pour qu'il s'ouvre avec Excel.

La macro dans ThisWorkbook de Fichier à effacer :

Code:
Private Sub Workbook_Open()
Application.DisplayAlerts = False
On Error Resume Next
Workbooks.Open ThisWorkbook.Path & "\" & "Efface.xls"
Application.OnTime Sheets("Feuil1").Range("A1"), "Efface.xls!EffaceTout"
End Sub

La macro dans le Module1 du fichier Efface :

Code:
Sub EffaceTout()
Dim F As Object, nomfich As String, n As Integer, i As Integer
Windows(ThisWorkbook.Name).Visible = False
Application.ScreenUpdating = False
Set F = ActiveWorkbook
nomfich = F.Path & "\" & F.Name
n = F.Worksheets.Count
Application.SheetsInNewWorkbook = n
Workbooks.Add
Application.SheetsInNewWorkbook = 3
For i = 1 To n
  F.Worksheets(i).Cells.Copy Sheets(i).[A1]
  Sheets(i).UsedRange = Sheets(i).UsedRange.Value 'supprime les formules
Next
F.Close False: Kill nomfich: ActiveWorkbook.SaveAs nomfich
ThisWorkbook.Close True
End Sub

Edit : s'il y a des feuilles graphiques dans Fichier à effacer, elles seront perdues...

A+
 

Pièces jointes

  • Fichier à effacer.xls
    47 KB · Affichages: 70
  • Fichier à effacer.xls
    47 KB · Affichages: 67
  • Fichier à effacer.xls
    47 KB · Affichages: 67
  • Efface.xls
    38 KB · Affichages: 65
  • Efface.xls
    38 KB · Affichages: 62
  • Efface.xls
    38 KB · Affichages: 63
Dernière édition:

job75

XLDnaute Barbatruc
Re : macro pour supprimer ttes les macro à une date precise

Re,

Il est plus correct de mettre un "Marqueur" (menu Insertion-Nom) dans Fichier à effacer.

Edit : il faut aussi renommer les feuilles du nouveau fichier.

La macro modifiée dans Efface :

Code:
Sub EffaceTout()
Dim F As Object, nomfich As String, n As Integer, i As Integer
Application.ScreenUpdating = False
On Error Resume Next
For Each F In Workbooks
  [COLOR="Red"]If IsError(F.Names("Marqueur")) Then GoTo 1 'recherche du nom "Marqueur"[/COLOR]
  nomfich = F.Path & "\" & F.Name
  n = F.Worksheets.Count
  Application.SheetsInNewWorkbook = n
  Workbooks.Add
  Application.SheetsInNewWorkbook = 3
  [COLOR="red"]For i = 1 To n
    Sheets(i).Name = Chr(1) & i 'nom provisoire
  Next i[/COLOR]
  For i = 1 To n
    F.Worksheets(i).Cells.Copy Sheets(i).[A1]
    Sheets(i).UsedRange = Sheets(i).UsedRange.Value 'supprime les formules
  [COLOR="red"]  Sheets(i).Name = F.Worksheets(i).Name 'renomme la feuille[/COLOR]
  Next i
  F.Close False: Kill nomfich: ActiveWorkbook.SaveAs nomfich
1 Next F
End Sub

A+
 

Pièces jointes

  • Fichier à effacer.xls
    47 KB · Affichages: 65
  • Fichier à effacer.xls
    47 KB · Affichages: 65
  • Fichier à effacer.xls
    47 KB · Affichages: 67
  • Efface.xls
    41 KB · Affichages: 62
  • Efface.xls
    41 KB · Affichages: 61
  • Efface.xls
    41 KB · Affichages: 59
Dernière édition:

popeckjunior

XLDnaute Junior
Re : macro pour supprimer ttes les macro à une date precise

Bonsoir forum,

desoler d'avoir déserté ce poste mais j'été tres coccupé ces jours ci...

je ne voulais pas revenir sur ce poste sans avoir lu le lien ci dessu (et je n'est pas fini pour tt vous dire)

je viens de telecharger les deux fichiers.
j'ai pris la macro du fichier efface et je les collers das l'autre fichier. j'ai modifié la date et l'heure puis enregistrer et fermer le fichier.
quand j'ai réouver le fichier rien ne ces passer...

qu'esque je n'es pas vu ou fait de mal pour que sa empeche le bon fonctionnement

merci de votre aide

je continu à planché dessus

bonnne soiree au forum
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 822
Membres
104 677
dernier inscrit
soufiane12