OVH Cloud OVH Cloud

Conserver structure d'importation de données externes

2 réponses
Avatar
Mérinos06
Bonjour à tous,

Lorsque j'importe des données d'un fichier texte dans Excel, je dois tout
d'abord définir la structure de celui-ci (champs séparés par tabulation ou
caractères spéciaux... , format de chaque champ) afin que les données se
retrouvent correctement présentées dans ma feuille de calcul.

Si je dois le lendemain importer un autre fichier de la même structure, je
dois à nouveau me retaper les mêmes fastidieuses manipes énoncées ci-dessus.

Ma question : peut-on automatiser l'importation de données d'un fichier
texte (sans devoir développer du code en VB) ?

Merci pour vos réponses.

Mérinos06

2 réponses

Avatar
Poulpor
Bonjour,

je ne pense pas. Ceci étant en vba, ce n'est pas difficile si tu suis mes
instructions.

1/ Réalise ton import avec l'enregistreur de macro en route
2/ Ouvre ton vb editor (alt + F11), tu peux voir une ligne ignoble,
commencant par "Workbooks.OpenText Filename:= ..." => ils'agit du paramétrage
de ton fichier stocké dans le code; pour l'instant tu ne fais rien avec

3/Copie-colle le code ci-dessous en remplacant le paramétrage de mon fichier
par celui trouvé avec l'enregistreur de macro dont on parle dans la section 2
(il ne faut remplacer que la partie apres 'Workbooks.OpenText Filename:=toto')

Et hop c'est terminé. Quand tu veux importer, tu lances ce code qui ouvre un
fichier texte, et le paramétrage se fait tout seul.

Poulpor

Sub IMPORT()

toto = Application.GetOpenFilename(, , "Parcourir le fichier", "Texte
(*.txt), *.txt")
If toto = False Then
Exit Sub
End If

Workbooks.OpenText Filename:=toto, Origin:=xlMSDOS, StartRow:=1,
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote,
ConsecutiveDelimiter:úlse, Tab:úlse, Semicolon:=True, Comma:úlse,
Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 2), Array(2, 4),
Array(3, 4), Array(4, 2), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 2),
Array(9, 2)), TrailingMinusNumbers:=True


End Sub






Bonjour à tous,

Lorsque j'importe des données d'un fichier texte dans Excel, je dois tout
d'abord définir la structure de celui-ci (champs séparés par tabulation ou
caractères spéciaux... , format de chaque champ) afin que les données se
retrouvent correctement présentées dans ma feuille de calcul.

Si je dois le lendemain importer un autre fichier de la même structure, je
dois à nouveau me retaper les mêmes fastidieuses manipes énoncées ci-dessus.

Ma question : peut-on automatiser l'importation de données d'un fichier
texte (sans devoir développer du code en VB) ?

Merci pour vos réponses.

Mérinos06


Avatar
Mérinos06
Merci Poulpor pour cette astuce ;-)

Mérinos06


Bonjour,

je ne pense pas. Ceci étant en vba, ce n'est pas difficile si tu suis mes
instructions.

1/ Réalise ton import avec l'enregistreur de macro en route
2/ Ouvre ton vb editor (alt + F11), tu peux voir une ligne ignoble,
commencant par "Workbooks.OpenText Filename:= ..." => ils'agit du paramétrage
de ton fichier stocké dans le code; pour l'instant tu ne fais rien avec

3/Copie-colle le code ci-dessous en remplacant le paramétrage de mon fichier
par celui trouvé avec l'enregistreur de macro dont on parle dans la section 2
(il ne faut remplacer que la partie apres 'Workbooks.OpenText Filename:=toto')

Et hop c'est terminé. Quand tu veux importer, tu lances ce code qui ouvre un
fichier texte, et le paramétrage se fait tout seul.

Poulpor

Sub IMPORT()

toto = Application.GetOpenFilename(, , "Parcourir le fichier", "Texte
(*.txt), *.txt")
If toto = False Then
Exit Sub
End If

Workbooks.OpenText Filename:=toto, Origin:=xlMSDOS, StartRow:=1,
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote,
ConsecutiveDelimiter:úlse, Tab:úlse, Semicolon:=True, Comma:úlse,
Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 2), Array(2, 4),
Array(3, 4), Array(4, 2), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 2),
Array(9, 2)), TrailingMinusNumbers:=True


End Sub






Bonjour à tous,

Lorsque j'importe des données d'un fichier texte dans Excel, je dois tout
d'abord définir la structure de celui-ci (champs séparés par tabulation ou
caractères spéciaux... , format de chaque champ) afin que les données se
retrouvent correctement présentées dans ma feuille de calcul.

Si je dois le lendemain importer un autre fichier de la même structure, je
dois à nouveau me retaper les mêmes fastidieuses manipes énoncées ci-dessus.

Ma question : peut-on automatiser l'importation de données d'un fichier
texte (sans devoir développer du code en VB) ?

Merci pour vos réponses.

Mérinos06