Bonjour à tous,

Je fais appel à vous pour un problème qui me bloque depuis deux jours.

Je vous explique :

j'ai un lot de n fichiers texte qui se trouvent dans un répertoire.

Je veux les ouvrir dans excel, faire dessus quelques manipulations (pour ça je me débrouille) puis les refermer.

J'ai bricolé le code suivant. Le problème c'est que je n'arrive qu'à ouvrir qu'un fichier à la fois (et j'ai 385 fichiers à modifier...). il me manque en fait une variable qui dirait "ouvre chaque fichier du répertoire" au lieu de ouvre tel fichier.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 'macro pour importer dans excel des fichiers text et enregistrer le fichier xls dans le même repertoire
Sub OuvrirfichierTxt()
Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim waExcel: Set waExcel = CreateObject("Excel.Application") 'Ouverture d'Excel
StrPath = "M:\ETUDES EN COURS\2006\06E023 Fédération Collectivités de l'eau SDA SeineMaritime\Donnees technique\test excel" 'Chemin d'accès du fichier
    If Right(StrPath, 1) <> "\" Then StrPath = StrPath & "\" 'Ajoute \ à la fin s'il y en a pas
    StrFich = "AMBRUMESNIL-20-10-05" 'Nom du fichier
    If FSO.FileExists(StrPath & StrFich) Then 'Existance du fichier
        waExcel.Visible = False 'Rendre invisible Excel
        'Importe le fichier texte vers une feuille Excel de façon Largeur fixe avec délimiteur : Tabulation et Space
        waExcel.Workbooks.OpenText StrPath & StrFich, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
        :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:= _
        False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1) _
        , TrailingMinusNumbers:=True
'Sauvegarde la feuiller importer vers le chemin d'accès de départ en motifiant l'extension et en mode partagé pour éviter des erreurs
        waExcel.Workbooks(StrFich).SaveAs StrPath & Left(StrFich, Len(StrFich) - 4) & ".xls", , , , , , 2
    End If
    'Fermeture d'Excel
    waExcel.Application.Quit
End Sub
J'ai mis en rouge le nom du fichier que j'ai utilisé pour tester mon code.

Il m'a bien créer un fichier xls dans le même répertoire mais je voudrais que la manip boucle sur chaque fichier de mon répertoire.

J'espère avoir été assez clair dans mes explications.

Merci d'avance pour votre aide.

Trollakuir

[Edit] bbil : Penser à rajouter les balises de codes, utiliser le bouton