Bonjour à tous,
Le titre parle de lui même et je vais essayer de décrire ce que je cherche à faire.
J'ai aujourd'hui de nombreux fichiers textes que j'incorpore dans Excel à la mano avec conversion des données etc etc
Ces actions sont très chronophages et en cherchant un peu sur le net, j'ai vu que des choses étaient possibles via VBA
Ce que je cherche à faire :
-- CONSTAT --
-> Fichiers textes auront toujours le même nom
-> La structure des données sera toujours la même
-> L'endroit ou je souhaite les implanter est aussi identique
Aller chercher les fichiers dans une variable ( Chemin d'accès )
Pour chaque nom de fichier et selon son nom récupére la donnée et fait donnée 1 => A1 , parsage pris en compte , donnée 2 => A2
passer à la ligne suivante Donnée 3 => B1 , parsage pris en compte, donnée 4 => B2 etc. etc. jusqu'à ce que l'ensemble du fichier texte soit parcouru.
Ces fichiers seront implémentés sur des feuilles différentes (Donc à prendre en compte)
Je vous joints deux fichiers textes pour exemple et un fichier excel ( sachant qu'au final je dois en avoir une vingtaine mais je pense pouvoir dupliquer comme il se doit après avoir eu un exemple.
En PJ :
Le fichier d'arrivée excel
Les fichiers que je cherche à récupérés au format Txt pour les implémentés. J'ai pris les premières lignes pour vous montrer
1-Test01.txt
IDCR00;COLUMN2
0039992;ECART CODE CHAINE
0003099;ECART TOP PERIODE
0000199;ECART TOP PERIODE
0006592;ECART CODE CHAINE
0008299;ECART TOP PERIODE
2-Test02.txt
COLUMN1;IDELN3;VANTFN;DAOZ01;TPPECR;IDCR00;VAVAUR
D & S ;00461595;CX;23/10/2014;Q;00461595;CX;
D & S ;00520395;CX;31/08/2014;M;00520395;
En attendant j'ai bien trouvé quelques exemples que j'essaye d'appliquer à ma feuille mais ce n'est jamais exactement pareille, et il est difficile de modeler le VBA existant :S
EN vous remerciant par avance
N'y connaissant pas grand chose je pars d'un existant :
mais je me retrouve avec une erreur sur shfichier
Le titre parle de lui même et je vais essayer de décrire ce que je cherche à faire.
J'ai aujourd'hui de nombreux fichiers textes que j'incorpore dans Excel à la mano avec conversion des données etc etc
Ces actions sont très chronophages et en cherchant un peu sur le net, j'ai vu que des choses étaient possibles via VBA
Ce que je cherche à faire :
-- CONSTAT --
-> Fichiers textes auront toujours le même nom
-> La structure des données sera toujours la même
-> L'endroit ou je souhaite les implanter est aussi identique
Aller chercher les fichiers dans une variable ( Chemin d'accès )
Pour chaque nom de fichier et selon son nom récupére la donnée et fait donnée 1 => A1 , parsage pris en compte , donnée 2 => A2
passer à la ligne suivante Donnée 3 => B1 , parsage pris en compte, donnée 4 => B2 etc. etc. jusqu'à ce que l'ensemble du fichier texte soit parcouru.
Ces fichiers seront implémentés sur des feuilles différentes (Donc à prendre en compte)
Je vous joints deux fichiers textes pour exemple et un fichier excel ( sachant qu'au final je dois en avoir une vingtaine mais je pense pouvoir dupliquer comme il se doit après avoir eu un exemple.
En PJ :
Le fichier d'arrivée excel
Les fichiers que je cherche à récupérés au format Txt pour les implémentés. J'ai pris les premières lignes pour vous montrer
1-Test01.txt
IDCR00;COLUMN2
0039992;ECART CODE CHAINE
0003099;ECART TOP PERIODE
0000199;ECART TOP PERIODE
0006592;ECART CODE CHAINE
0008299;ECART TOP PERIODE
2-Test02.txt
COLUMN1;IDELN3;VANTFN;DAOZ01;TPPECR;IDCR00;VAVAUR
D & S ;00461595;CX;23/10/2014;Q;00461595;CX;
D & S ;00520395;CX;31/08/2014;M;00520395;
En attendant j'ai bien trouvé quelques exemples que j'essaye d'appliquer à ma feuille mais ce n'est jamais exactement pareille, et il est difficile de modeler le VBA existant :S
EN vous remerciant par avance
N'y connaissant pas grand chose je pars d'un existant :
mais je me retrouve avec une erreur sur shfichier
Code:
Dim r As Long, Cpt As Long
Function Lire(ByVal NomFichier As String)
Dim Chaine As String
Dim Ar() As String
Dim i As Long
Dim iCol As Long
Dim NumFichier As Integer
Dim Separateur As String * 1
Separateur = ";"
Close
NumFichier = FreeFile
Open NomFichier For Input As #NumFichier
Cpt = Cpt + 1
Do While Not EOF(NumFichier)
iCol = 1
Line Input #NumFichier, Chaine
Ar = Split(Chaine, Separateur)
For i = LBound(Ar) To UBound(Ar)
ShFichiers.Cells(r, iCol) = Ar(i)
iCol = iCol + 1
Next
r = r + 1
Loop
Application.StatusBar = " Fichiers : " & Cpt
Close #NumFichier
End Function
Sub OuvertureFichiersVoieA()
Dim fichier As Variant, i As Integer
ChDir ThisWorkbook.Path
fichier = Application.GetOpenFilename("Fichiers Texte,*.txt", 1, "Sélectionnez le fichier voie A", , True)
If TypeName(fichier) = "Boolean" Then Exit Sub
r = 3: Cpt = 2
Application.ScreenUpdating = False
For i = 1 To UBound(fichier)
Lire fichier(i)
Next i
ShFichiers.Cells(40, 1) = fichier
ShFichiers.Range("D1").Select
Application.ScreenUpdating = True
End Sub
Pièces jointes
Dernière édition: