Bonjour à tous,
Je suis débutant en VBA, mais j'essaie de créer un fichier me permettant de copier dans un fichier synthèse tous les onglets nommés "Report" de chaque fichier d'un dossier. De plus à chaque fois que je copie l'onglet, je veux le renommer selon la case L4.
En parcourant plusieurs forums, je suis arrivé au code ci-dessous, mais j'ai une erreur "run time n°5" lors de l'execution du code à la ligne:
Fich = Dir
Voici le code que j'ai obtenu:
Option Explicit
Sub BoucleDeTraitement1() ' la boucle de traitement des fichiers
Dim Feuille As Worksheet
Dim Lenom As String
Dim Flag As Boolean
Dim ws As Worksheet
Dim wb As Workbook
Dim wb1 As Workbook
Dim Fich As String
Const Chemin = "C:\Users\Fiche collectées\"
Application.ScreenUpdating = False
Fich = Dir(Chemin & "*.*")
While Len(Fich) > 0
Set wb = Workbooks.Open(Chemin & Fich)
Set ws = wb.Worksheets("Report")
Lenom = "Test12345" & ".xls"
Flag = FileExists(Chemin & Lenom) 'Test si le fichier existe
If Flag Then
Set wb1 = Workbooks.Open(Chemin & Lenom)
Workbooks.Open Lenom
ws.Name = Range("L4").Text 'Nomme l'onglet selon la cellule L4
ws.Copy After:=wb1.Sheets(wb1.Sheets.Count)
ws.Name = "Report" 'Nomme l'onglet report
ActiveWorkbook.Close True
Else
ws.Name = Range("L4").Text
ws.Copy
ws.Name = "Report"
ActiveWorkbook.Close savechanges:=True, Filename:=Lenom
End If
ActiveWorkbook.Close True
Fich = Dir
Wend
Application.ScreenUpdating = True
End Sub
Function FileExists(S As String) As Boolean
FileExists = Dir(S) <> ""
End Function
Est ce que quelqu'un à une idée de mon problème?
Merci d'avance!
Je suis débutant en VBA, mais j'essaie de créer un fichier me permettant de copier dans un fichier synthèse tous les onglets nommés "Report" de chaque fichier d'un dossier. De plus à chaque fois que je copie l'onglet, je veux le renommer selon la case L4.
En parcourant plusieurs forums, je suis arrivé au code ci-dessous, mais j'ai une erreur "run time n°5" lors de l'execution du code à la ligne:
Fich = Dir
Voici le code que j'ai obtenu:
Option Explicit
Sub BoucleDeTraitement1() ' la boucle de traitement des fichiers
Dim Feuille As Worksheet
Dim Lenom As String
Dim Flag As Boolean
Dim ws As Worksheet
Dim wb As Workbook
Dim wb1 As Workbook
Dim Fich As String
Const Chemin = "C:\Users\Fiche collectées\"
Application.ScreenUpdating = False
Fich = Dir(Chemin & "*.*")
While Len(Fich) > 0
Set wb = Workbooks.Open(Chemin & Fich)
Set ws = wb.Worksheets("Report")
Lenom = "Test12345" & ".xls"
Flag = FileExists(Chemin & Lenom) 'Test si le fichier existe
If Flag Then
Set wb1 = Workbooks.Open(Chemin & Lenom)
Workbooks.Open Lenom
ws.Name = Range("L4").Text 'Nomme l'onglet selon la cellule L4
ws.Copy After:=wb1.Sheets(wb1.Sheets.Count)
ws.Name = "Report" 'Nomme l'onglet report
ActiveWorkbook.Close True
Else
ws.Name = Range("L4").Text
ws.Copy
ws.Name = "Report"
ActiveWorkbook.Close savechanges:=True, Filename:=Lenom
End If
ActiveWorkbook.Close True
Fich = Dir
Wend
Application.ScreenUpdating = True
End Sub
Function FileExists(S As String) As Boolean
FileExists = Dir(S) <> ""
End Function
Est ce que quelqu'un à une idée de mon problème?
Merci d'avance!
Dernière édition: