Bonjour, Non ca ne fonctionne pas.Re, à toi de tester cette ultime version, dans l'attente d'une réponse.(MàJ 23 Sep)
Décidément ce forum ressemble de plus en plus à un obituaire...
Merci beaucoup. Je n'avais pas vu ce dossier "Copies".Salut, ici tout fonctionne ..... quel est le message d'erreur ? as-tu regardé dans le dossier Sauvegarde baptisé Copies et placé à la racine de l'appli ?
Recherche Récursive : permet d'étendre la sélection des fichiers aux dossiers/sous dossiers présents dans le dossier racine sélectionné via Liste Fichiers.
Vider Dossier Sauvegarde : permet d'effacer le contenu du dossier de sauvegarde baptisé ici Copies avant de lancer Liste Fichiers.
Gestion éventuels Doublons : permet d'éviter l'écrasement de fichiers possédant la même dénomination ( via un indice (0001) (0002) etc ).
Il y a juste un probleme. il y a 800 fichiers avec des macros et à chaque traitement d'un fichier, on me dit "Mettre à jour" (il y a toujours 2 fenetres qui apparaissent). C'est tres tres long. Faut valider à chaque fois.Salut, à toi de voir ..
Le nom du dossier des fichiers allégés est modifiable via la feuille Param
Application.displayalerts = false
macro
Application.displayalerts = True
Set Wkb = Workbooks.Open(Filename:=sFichier)
Application.DisplayAlerts = False
For j = Wkb.Worksheets.Count To 2 Step -1
Wkb.Worksheets(j).Delete
Next j
Application.DisplayAlerts = True
.....
Application.DisplayAlerts = False
Wkb.SaveAs Filename:=sFichierFinal
Wkb.Close
Application.DisplayAlerts = True
Private Sub Supprimer_CodeVBA()
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
.....
Set Wkb = Workbooks.Open(Filename:=sFichier, UpdateLinks:=0)
Application.DisplayAlerts = False
For j = Wkb.Worksheets.Count To 2 Step -1
Supprimer_CodeVBA
Wkb.Worksheets(j).Delete
Next j
Application.DisplayAlerts = True
.....
Private Sub Supprimer_LiaisonsXL()
Dim Liaisons As Variant, i As Long
Liaisons = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
If IsEmpty(Liaisons) = True Then Exit Sub
For i = 1 To UBound(Liaisons)
ActiveWorkbook.BreakLink Name:=Liaisons(i), _
Type:=xlLinkTypeExcelLinks
Next i
End Sub