Supprimer les fichiers d'un repertoire
Bonjour
J'utilise cette macro. Comme d'écrit j'ouvre et travaille sur tous les fichiers se trouvant dans un repertoire "- fichier à traiter". Je souhaiterais une fois le groupe refermé à la fin de la macro, que ses fichiers soient tous supprimés (laissant le repetoire - Fichier à traiter vide). Sauriez vous comment faire?
Voici la macro
Sub DPCD_Alsace()
Dim Cl As Workbook, Cl_1 As Workbook
Dim Rep As Integer
Rep = MsgBox(" ATTENTION : Avant d'éditer le bordereau de facturation, avez-vous choisit le bon secteur ? ", vbYesNo + vbQuestion, "Avertissement")
If Rep = vbYes Then
' ici le traitement si réponse positive
' Permet d'ouvrir plusieurs fichiers dans un répertoire
' GC Excel - 2011-11-16
Dim wb As Workbook, wb2 As Workbook, wb3 As Workbook, wb4 As Workbook
Dim sPath As String, sFilename As String
Dim NbRows As Integer, rg As Range
'Augmenter rapidité
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
sPath = ThisWorkbook.Path & "\- Fichier a traiter\" 'Répertoire
sFilename = Dir(sPath & "*.xls*") 'ouvre tous les fichiers .xls*
Do While Len(sFilename) > 0
Set wb2 = Workbooks.Open(sPath & sFilename) 'Ouvre le fichier
'
' Votre code ici
Set wb3 = Workbooks.Open(ThisWorkbook.Path & "\" & "Global" & "\" & "DPCD Alsace RT global 2017.xlsx")
'Essais ligne par ligne ca marche mais les lignes pourraient être décalé et ca me l'amene Ligne 2 a chaque fois
wb2.Sheets("Feuil1").Range("A2:BC600").Copy wb3.Sheets("RT").Range("A1000000").End(xlUp)(2)
'Remettre les paramètres normaux
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = False
wb3.Save
wb3.Close 'Fermer le fichier
wb2.Close
Application.DisplayAlerts = True
sFilename = Dir
Loop
Set wb4 = Workbooks.Open(ThisWorkbook.Path & "\" & "Modèles" & "\" & "BORD DPCD (Modèle).xlsx")
'Augmenter rapidité
Application.Calculation = xlCalculationManual
sPath = ThisWorkbook.Path & "\- Fichier a traiter\" 'Répertoire
sFilename = Dir(sPath & "*.xls*") 'ouvre tous les fichiers .xls*
Do While Len(sFilename) > 0
Set wb2 = Workbooks.Open(sPath & sFilename) 'Ouvre le fichier
wb2.Sheets("Feuil1").Range("A2:BC600").Copy wb4.Sheets("RETOUR TERRAIN").Range("A1000000").End(xlUp)(2)
Application.DisplayAlerts = False
wb2.Close
Application.DisplayAlerts = True
sFilename = Dir
Loop
'Remettre les paramètres normaux
Application.Calculation = xlCalculationAutomatic
With wb4.Sheets("Bordereau attachement").Select
Range("E9").Formula = "='RETOUR TERRAIN'!AT2"
'Copie feuille BORD fin de lot et la colle au même endroit en valeur
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("J8:J10").Select
wb4.SaveAs (ThisWorkbook.Path & "\" & "BORD DPCD Alsace" & "\" & "RT ET BORD DPCD" & " " & [E7].Value & " " & [G6].Value & " " & "- OTI France" & ".xlsx")
'Ferme le nouveau fichier
Workbooks("RT ET BORD DPCD" & " " & [E7].Value & " " & [G6].Value & " " & "- OTI France" & ".xlsx").Close
End With
MsgBox " C'est fini ... Merci d'enlever les fichier dans fichier à traiter ! "
Else
' ici le traitement si réponse négative
End If
'Remettre les paramètres normaux
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Merci d'avance
Bonsoir,
Tu peux utiliser Kill pour supprimer des fichiers :
Kill "Chemin du dossier" & "\*.*"Il n'est pas interdit d'utiliser les balises Code pour citer du code dans un post. La commande Code est là pour ça, et son utilisation est même recommandée.
Bonjour et merci
Je connaissais Kill mais n'arrive pas à l'utiliser. Cest simple je n'arrive même pas à mettre en pratique le code. Kill chemin du dossier (la je sais pas comment l'écrire) et le \. Je ne sais pas se que ça veut dire il doit s'agir d'une fameuse balise mais alors la je suis encore plus perdu en entendant ce mot car je ne sais pas du tout se que cest
J'aurais dû dire que je ne suis qu'un novice (2 semaines que je fais ca)
bonjour,
Tu ne peux pas supprimer tous les fichiers du ThisWorkbook.Path" (ça provoque une erreur)
Tu peux supprimer tous les fichiers sauf "ThisWorkbook" :
Sub test()
spath = ThisWorkbook.Path
On Error Resume Next 'ignore l'erreur classeur actif
Kill spath & "\*.*"
End SubA+
Salut
Non non je ne veux surtout pas supprimer tout thisworkbook path juste un répertoire. Jai donc à la suite de spath thisworkbook path ajoute le nom du répertoire (avec la mise en forme qui va bien) et le résultat est que ça marche parfaitement bien
Honnêtement vraiment merci ca va m'aider pour beaucoup de mes macros...
Cordialement