Bonjour
Je suis débutant en vba,
je recois un fichier texte qui n'a pas de délimiteur et je suis obligé de le delimité à la main (largeur fixe =10 car puis 5 puis 6)
est-ce que je peux faire cela avec VB
Merci

Bonjour
Je suis débutant en vba,
je recois un fichier texte qui n'a pas de délimiteur et je suis obligé de le delimité à la main (largeur fixe =10 car puis 5 puis 6)
est-ce que je peux faire cela avec VB
Merci
bonjour
test si ceci repond a ta question
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub Macro1() ' macro enregistree par l'enregistreur ' elle ouvre le fichier texte C:\prov\lstserv.txt ' col1 10 car col2 5car col3 6car Workbooks.OpenText Filename:="C:\prov\lstserv.txt", _ Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array( _ Array(0, 1), Array(10, 1), Array(15, 1), Array(21, 1)), TrailingMinusNumbers:=True End Sub
GERARD

Merci
C'est tout à fait ça
Est-ce que tu svp m'expliquer en qq mots comment ca marche, si possible
en tout cas merci beaucoup déjà
pas de probleme
1 ) pour enregistrer une macro dans excel
tu ouvre outil / macro / nouvelle macro et tu lui donne un nom
a partir de ce moment ce que tu fait est enregistre (comme sur un repondeur par exemple)
a la fin tu arrete par outil / macro / arreter l'enregistrement
tu lance alors ta macro par outil / macro /executer autant de fois que tu le souhaite
tu a egalement la possibilite de modifier ta macro par outil / macro /modifier
2 ) explication sur la macroenregistree
debut de macro et fin de macro
les lignes qui commencent par ' sont des lignes de comentaires
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sub nomdemacro() End Sub
le reste est une seule et meme ligne qui ouvre le fichier texte (OpenText) "C:\prov\lstserv.txt" (tu as la possibilite de modifier non et chemin) dans le classeur actif (Workbooks)
Origin:=xlMSDOS --> le fichier ouvert est d'origine MSDOS
StartRow:=1 --> debut du texte en ligne 1
DataType:=xlFixedWidth --> le fichier a soit des champs delimités par un caractere espace virgule pointvirgule tab .... soit des champs fixe (ici fixe)
FieldInfo:=Array( Array(0, 1), Array(10, 1), Array(15, 1), Array(21, 1)),
on debute en colonne 0
la premiere plage va jusqu'a 10 (0 a 10)
la seconde plage va jusqu'a 15 (11 a 15)
la troisieme plage va jusqu'a 21 (16 a 21)
TrailingMinusNumbers:=True facultatif tu vire je ne sais pas ce que c'est que cet argument
3 ) un conseil promene toi sur ce site genial on y apprends enormement de choses
Joyeuse fetes
GERARD

Merci bien c'est vraiment sympa
Bonne année 2008
Partager