Bonjour à tous
Contexte:
J'aimerais sur Excel concaténer plusieurs fichiers: c'est à dire avoir chaque fichier à la suite sur Excel.
Ces fichiers sont dans un répertoire et sont de type: JDB.000, JDB.001, JDB.002 etc...
Souhait:
Je voudrais donc en VBA avoir une boucle qui me permette de boucler les fichiers du répertoire (en se basant je pense sur l'incrémentation de l'extension 001,002,etc.. ): A chaque boucle dès qu'il y a un fichier, je l'importe sur Excel (c'est comme si c'est un fichier .csv en terme de manière d'import)
Travail réalisé auparavant:
J'ai un code qui marche mais qui est n'est pas assez automatisé. Il permet à l'utilisateur de choisir un fichier dans ce répertoire puis j'importe ce fichier, ensuite on pose la question à l'utilisateur pour savoir s'il veut en importer un autre etc...jusqu'a ce que l'utilisateur ne veut plus importer de fichier.... Le problème c'est que ça peut vite devenir long surtout si il faut importer 30 fichiers.. Voici le code malgré tout:
	
	
	
	
	
		
Voila donc le mode d'import est le même mais il me faut juste une technique me permettant de boucler tous les fichiers dans le répertoire et pour chaque fichier je le met sur Excel (à la suite des précédents importés)
Voila merci d'avance de m'aider pour réaliser cette tâche 😛
	
		
			
		
		
	
				
			Contexte:
J'aimerais sur Excel concaténer plusieurs fichiers: c'est à dire avoir chaque fichier à la suite sur Excel.
Ces fichiers sont dans un répertoire et sont de type: JDB.000, JDB.001, JDB.002 etc...
Souhait:
Je voudrais donc en VBA avoir une boucle qui me permette de boucler les fichiers du répertoire (en se basant je pense sur l'incrémentation de l'extension 001,002,etc.. ): A chaque boucle dès qu'il y a un fichier, je l'importe sur Excel (c'est comme si c'est un fichier .csv en terme de manière d'import)
Travail réalisé auparavant:
J'ai un code qui marche mais qui est n'est pas assez automatisé. Il permet à l'utilisateur de choisir un fichier dans ce répertoire puis j'importe ce fichier, ensuite on pose la question à l'utilisateur pour savoir s'il veut en importer un autre etc...jusqu'a ce que l'utilisateur ne veut plus importer de fichier.... Le problème c'est que ça peut vite devenir long surtout si il faut importer 30 fichiers.. Voici le code malgré tout:
		Code:
	
	
	Sub import()
    Dim nom_fichier As String
    Dim compteur As Integer
    
    compteur = 0
    
     Do
            
        'On regarde d'abord où se situe la limite dans la première feuille pour importer les données a la suite
        Sheets(1).Select
        Do
            compteur = compteur + 1
        Loop Until Cells(compteur, 1) = ""
    
        ChDrive dir_csv: ChDir dir_csv 'dir_csv est la variable globale qui contient le chemin du répertoire où on se place à l'ouverture
        filetoopen = Application.GetOpenFilename("(*.*), *.*")  'FileToOpen contiendra le chemin du fichier qu'a choisi d'importer l'utilisateur
        'Filetoopen contient le chemin du fichier qu'on importe + son nom + son extension
        If filetoopen = False Then
            MsgBox ("You have not selected file") 'Dans le cas où il n'y a pas de fichier choisi.
            Exit Sub
        End If
            
        fichier_jdbprod = filetoopen 'chemin + nom + extension
        nom_fichier = Split(Mid$(filetoopen, InStrRev(filetoopen, "\") + 1), ".")(0)  'Nom du fichier sans son extension
            
        If filetoopen <> False Then
            With ActiveSheet.QueryTables.Add(Connection:= _
                    "TEXT;" & filetoopen _
                    , Destination:=Range("$A$" & compteur))
                    .FieldNames = True
                    .RowNumbers = False
                    .FillAdjacentFormulas = False
                    .PreserveFormatting = True
                    .RefreshOnFileOpen = False
                    .RefreshStyle = xlInsertDeleteCells
                    .SavePassword = False
                    .SaveData = True
                    .AdjustColumnWidth = True
                    .RefreshPeriod = 0
                    .TextFilePromptOnRefresh = False
                    .TextFilePlatform = 932
                    .TextFileStartRow = 1
                    .TextFileParseType = xlDelimited
                    .TextFileTextQualifier = xlTextQualifierDoubleQuote
                    .TextFileConsecutiveDelimiter = False
                    .TextFileTabDelimiter = False 'Tabulation
                    .TextFileSemicolonDelimiter = True 'Point virgule
                    .TextFileCommaDelimiter = False 'Virgule
                    .TextFileSpaceDelimiter = False 'espace
                    .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
                    .TextFileDecimalSeparator = "." 
                    .TextFileTrailingMinusNumbers = True
                    .Refresh BackgroundQuery:=False
            End With
        End If
reponse = MsgBox("Do you want to concatenate another file with the same format ?", vbYesNo)
       
    Loop Until reponse = vbNo
	Voila donc le mode d'import est le même mais il me faut juste une technique me permettant de boucler tous les fichiers dans le répertoire et pour chaque fichier je le met sur Excel (à la suite des précédents importés)
Voila merci d'avance de m'aider pour réaliser cette tâche 😛