Réaliser une boucle sur plusieur fichiers dans un dossier

Hello à tous les lecteurs

J'ai besoin de vos connaissances puisque je bloque sur la mise en place d'une boucle dans mon code.

Contexte :

Mon outil a pour objectif de convertir un fichier CSV vers CSV ou TXT. VBA intervient uniquement pour importer le fichier et exporter le résultat, la conversion est réalisée par le biais de plusieurs formules.

Fonctionnement :

Le module ci-dessous consiste à ouvrir une boite de dialogue afin de sélectionner le fichier CV à convertir. L'import se réalise et ensuite, le module récupère une autre feuille (contenant les données souhaitées) et l'exporte dans le dossier source.

Ma problématique est donc de mettre en place une boucle afin de réaliser ce processus (import fichier 1, export feuille A, import fichier 2, export feuille A) autant de fois qu'il y a de fichiers dans le dossier sélectionné.

Pensez-vous pouvoir m'aider ?

Merci d'avance,

Sub CONVERT_TO_CSV()

    'J'organise mes variables
    Dim Chemin, position, NomFeuille As String
    Dim strFichier As String
    Dim Name As String

    'Je permet à l'utilisateur de selectionner le fichier à convertir
    With Application.FileDialog(msoFileDialogFilePicker)
    .Show
    On Error Resume Next
    Fichier = .SelectedItems.Item(1)
    On Error GoTo 0
    End With
    If Fichier <> "" Then Sheets("IN_OUT").Range("B2").Value = Fichier

    'J'insère dans une cellule, le chemin du fichier selectionné
    fichier1 = Sheets("IN_OUT").Range("B2")

    'J'insère dans une cellule, le nom de fichier selectionné
    Fichier = Dir(fichier1)
    Sheets("IN_OUT").Range("B3").Value = Fichier

    'Je désactive l'affichage dynamique
    Application.ScreenUpdating = False

    'J'affiche les feuilles utiles
    Sheets("INPUT").Visible = True
    Sheets("INPUT").Range("A1:I105000").ClearContents

    'J'ouvre le fichier à convertir
    Workbooks.Open Filename:=fichier1, local:=True

    'Je copie les données du fichier à convertir
    Range("A1:I105000").Select
    Application.CutCopyMode = False
    Selection.Copy

    'Je colle les données dans l'outil de conversion
    Windows("Convert lite.xlsm").Activate
    Sheets("INPUT").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

    'Je selectionne le fichier à convertir pour le fermer sans enregistrer
    Windows(Fichier).Activate
    Application.DisplayAlerts = False
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True

    'Je selectionne l'outil de conversion pour masquer INPUT
    Windows("Convert lite.xlsm").Activate
    Sheets("INPUT").Visible = xlSheetVeryHidden

    'Je détermine mes variables
    Chemin = Sheets("IN_OUT").Range("B7")
    Name = Sheets("IN_OUT").Range("B6")

    'J'affiche les feuilles utiles
    Sheets("F2").Visible = True
    Sheets("IN_OUT").Visible = True

    'Je bloque la pop up
    Application.DisplayAlerts = False

    'Je copie la feuille
    Worksheets("F2").Copy

    'Je lance le process de conversion et enregistre mon fichier
    With ActiveWorkbook
    .SaveAs Filename:=Chemin & "\" & Name & ".csv", FileFormat:=xlCSV, local:=True
    .Close
    End With

    'Je masque les feuilles
    Sheets("F2").Visible = xlSheetVeryHidden
    Sheets("IN_OUT").Visible = xlSheetVeryHidden

    'Je reactive les pop up et l'affichage dynamique
    Application.DisplayAlerts = False
    Application.ScreenUpdating = True

    'J'informe de la fin du process
    MsgBox "Fichier disponible dans ton dossier", vbInformation

End Sub
Rechercher des sujets similaires à "realiser boucle fichiers dossier"