modif contenu texte dans file csv

Le
jipi
Bonjour,

J'ai besoin de faire une petite macro pour pour aller
chercher des textes prcis, et les remplacer, dans un
fichier csv avant importation (en plus j'ai des "
parasites qui me polluent mon import).

La commande OpenText me permet de lire, d'crire,
d'ajouter du texte mais comment aller rechercher un texte
prcis et le remplacer ? L je suis sec.

Merci les pros pour votre aide!

jipi
Vos réponses
Trier par : date / pertinence
MJD
Le #1941235
Pourquoi n'essaies tu pas de l'ouvrir dans WORD puis de remplacer les " par
rien et de rechercher ton texte aussi dans word
puis tu l'enregistres en conservant son format initial

mjd


Bonjour,

J'ai besoin de faire une petite macro pour pour aller
chercher des textes précis, et les remplacer, dans un
fichier csv avant importation (en plus j'ai des "
parasites qui me polluent mon import).

La commande OpenText me permet de lire, d'écrire,
d'ajouter du texte mais comment aller rechercher un texte
précis et le remplacer ? Là je suis sec.

Merci les pros pour votre aide!

jipi



denis P
Le #1941225
Salut
A adapté....
1 lire tout le fichier et le mettre ligne par ligne dans une variable
"Tbl()"
2 fait tes manip sur Tbl
3 écrire le nouveau fichier
denis p.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''
Sub ModifFichierTexte()
Dim Tbl()
Dim I As Integer
'ouvre le fichier texte en lecture
Open "C:Test.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Input #1, Tbl(I)
Loop
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
"jipi" news:26b101c4ddda$449b6460$
Bonjour,

J'ai besoin de faire une petite macro pour pour aller
chercher des textes précis, et les remplacer, dans un
fichier csv avant importation (en plus j'ai des "
parasites qui me polluent mon import).

La commande OpenText me permet de lire, d'écrire,
d'ajouter du texte mais comment aller rechercher un texte
précis et le remplacer ? Là je suis sec.

Merci les pros pour votre aide!

jipi
jipi
Le #1941167
Bonjour,

Merci de ta réponse, toutefois elle ne coorespond pas à
mon besoin, je ne me suis pas suffisamment bien exprimé :
dans mes lignes d'enregistrement j'ai à la fois du texte
et des valeurs et mon but est de supprimer les caractères
parasites (des " en plein champ texte : devant grandes et
devant l'hopi) cf mon fichier test
'************************************************
"ce";3;"ième fichier";"est un test"
"où il va se";;"passer ";"des "grandes choses"
"si on";;"ne va pas";"à "l'hopi de suite"
"ce sera";3000;"fois tant mieux"
'************************************************


jipi
-----Message d'origine-----
Salut
A adapté....
1 lire tout le fichier et le mettre ligne par ligne dans
une variable

"Tbl()"
2 fait tes manip sur Tbl
3 écrire le nouveau fichier
denis p.

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''

'''''
Sub ModifFichierTexte()
Dim Tbl()
Dim I As Integer
'ouvre le fichier texte en lecture
Open "C:Test.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Input #1, Tbl(I)
Loop
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''

"jipi" news:26b101c4ddda$449b6460$
Bonjour,

J'ai besoin de faire une petite macro pour pour aller
chercher des textes précis, et les remplacer, dans un
fichier csv avant importation (en plus j'ai des "
parasites qui me polluent mon import).

La commande OpenText me permet de lire, d'écrire,
d'ajouter du texte mais comment aller rechercher un texte
précis et le remplacer ? Là je suis sec.

Merci les pros pour votre aide!

jipi


.



denis P
Le #1941009
Et comme ça ?
en utilisant "Line Input #1, Tbl(I)" à la place de "Input #1, Tbl(I)".
Là cela enlève tout les ".
Si tu veux garder les " dans le texte il te faudra lire chaque ligne
caractère par caractère,
si ;" --> enlever le "
si car quelconque" ---> ne pas enlever le "
denis p.


Option Explicit

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub ModifFichierTexte()
Dim Tbl()
Dim Ln
Dim I As Integer
'ouvre le fichier texte en lecture
Open "c:testT.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Line Input #1, Tbl(I)
'Debug.Print Tbl(I)
Loop
'Debug.Print "************************************"
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Debug.Print Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


"jipi" news:278601c4ddfc$35e1e3f0$
Bonjour,

Merci de ta réponse, toutefois elle ne coorespond pas à
mon besoin, je ne me suis pas suffisamment bien exprimé :
dans mes lignes d'enregistrement j'ai à la fois du texte
et des valeurs et mon but est de supprimer les caractères
parasites (des " en plein champ texte : devant grandes et
devant l'hopi) cf mon fichier test
'************************************************
"ce";3;"ième fichier";"est un test"
"où il va se";;"passer ";"des "grandes choses"
"si on";;"ne va pas";"à "l'hopi de suite"
"ce sera";3000;"fois tant mieux"
'************************************************


jipi
-----Message d'origine-----
Salut
A adapté....
1 lire tout le fichier et le mettre ligne par ligne dans
une variable

"Tbl()"
2 fait tes manip sur Tbl
3 écrire le nouveau fichier
denis p.

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''

'''''
Sub ModifFichierTexte()
Dim Tbl()
Dim I As Integer
'ouvre le fichier texte en lecture
Open "C:Test.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Input #1, Tbl(I)
Loop
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''

"jipi" news:26b101c4ddda$449b6460$
Bonjour,

J'ai besoin de faire une petite macro pour pour aller
chercher des textes précis, et les remplacer, dans un
fichier csv avant importation (en plus j'ai des "
parasites qui me polluent mon import).

La commande OpenText me permet de lire, d'écrire,
d'ajouter du texte mais comment aller rechercher un texte
précis et le remplacer ? Là je suis sec.

Merci les pros pour votre aide!

jipi


.



jipi
Le #1940937
Bonjour Denis,

Je me suis inspiré de ta réponse et ai trouvé la solution
à mon pb dans la partie supprime les guillemets
(parasites), j'ai écrit
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), " """, " ")
Next I
et ça me donne le résultat recherché.

Merci
A+

jipi

-----Message d'origine-----
Et comme ça ?
en utilisant "Line Input #1, Tbl(I)" à la place
de "Input #1, Tbl(I)".

Là cela enlève tout les ".
Si tu veux garder les " dans le texte il te faudra lire
chaque ligne

caractère par caractère,
si ;" --> enlever le "
si car quelconque" ---> ne pas enlever le "
denis p.


Option Explicit

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''


Sub ModifFichierTexte()
Dim Tbl()
Dim Ln
Dim I As Integer
'ouvre le fichier texte en lecture
Open "c:testT.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Line Input #1, Tbl(I)
'Debug.Print Tbl(I)
Loop
'Debug.Print "************************************"
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Debug.Print Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''



"jipi" news:278601c4ddfc$35e1e3f0$
Bonjour,

Merci de ta réponse, toutefois elle ne coorespond pas à
mon besoin, je ne me suis pas suffisamment bien exprimé :
dans mes lignes d'enregistrement j'ai à la fois du texte
et des valeurs et mon but est de supprimer les caractères
parasites (des " en plein champ texte : devant grandes et
devant l'hopi) cf mon fichier test
'************************************************
"ce";3;"ième fichier";"est un test"
"où il va se";;"passer ";"des "grandes choses"
"si on";;"ne va pas";"à "l'hopi de suite"
"ce sera";3000;"fois tant mieux"
'************************************************


jipi
-----Message d'origine-----
Salut
A adapté....
1 lire tout le fichier et le mettre ligne par ligne dans
une variable

"Tbl()"
2 fait tes manip sur Tbl
3 écrire le nouveau fichier
denis p.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'


'''''''''''''''''''
'''''
Sub ModifFichierTexte()
Dim Tbl()
Dim I As Integer
'ouvre le fichier texte en lecture
Open "C:Test.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Input #1, Tbl(I)
Loop
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'


''''''''''''
"jipi" news:26b101c4ddda$449b6460$
Bonjour,

J'ai besoin de faire une petite macro pour pour aller
chercher des textes précis, et les remplacer, dans un
fichier csv avant importation (en plus j'ai des "
parasites qui me polluent mon import).

La commande OpenText me permet de lire, d'écrire,
d'ajouter du texte mais comment aller rechercher un
texte


précis et le remplacer ? Là je suis sec.

Merci les pros pour votre aide!

jipi


.




.




jipi
Le #1921714
Re bonsoir Denis
J'ai un pb I s'arrête à 32767 hors j'ai un fichier de
95000 lignes que je souhaire en une seule passe, puis le
faire et si oui comment ?

Merci de ton aide

jipi
-----Message d'origine-----
Et comme ça ?
en utilisant "Line Input #1, Tbl(I)" à la place
de "Input #1, Tbl(I)".

Là cela enlève tout les ".
Si tu veux garder les " dans le texte il te faudra lire
chaque ligne

caractère par caractère,
si ;" --> enlever le "
si car quelconque" ---> ne pas enlever le "
denis p.


Option Explicit

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''


Sub ModifFichierTexte()
Dim Tbl()
Dim Ln
Dim I As Integer
'ouvre le fichier texte en lecture
Open "c:testT.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Line Input #1, Tbl(I)
'Debug.Print Tbl(I)
Loop
'Debug.Print "************************************"
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Debug.Print Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''



"jipi" news:278601c4ddfc$35e1e3f0$
Bonjour,

Merci de ta réponse, toutefois elle ne coorespond pas à
mon besoin, je ne me suis pas suffisamment bien exprimé :
dans mes lignes d'enregistrement j'ai à la fois du texte
et des valeurs et mon but est de supprimer les caractères
parasites (des " en plein champ texte : devant grandes et
devant l'hopi) cf mon fichier test
'************************************************
"ce";3;"ième fichier";"est un test"
"où il va se";;"passer ";"des "grandes choses"
"si on";;"ne va pas";"à "l'hopi de suite"
"ce sera";3000;"fois tant mieux"
'************************************************


jipi
-----Message d'origine-----
Salut
A adapté....
1 lire tout le fichier et le mettre ligne par ligne dans
une variable

"Tbl()"
2 fait tes manip sur Tbl
3 écrire le nouveau fichier
denis p.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'


'''''''''''''''''''
'''''
Sub ModifFichierTexte()
Dim Tbl()
Dim I As Integer
'ouvre le fichier texte en lecture
Open "C:Test.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Input #1, Tbl(I)
Loop
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'


''''''''''''
"jipi" news:26b101c4ddda$449b6460$
Bonjour,

J'ai besoin de faire une petite macro pour pour aller
chercher des textes précis, et les remplacer, dans un
fichier csv avant importation (en plus j'ai des "
parasites qui me polluent mon import).

La commande OpenText me permet de lire, d'écrire,
d'ajouter du texte mais comment aller rechercher un
texte


précis et le remplacer ? Là je suis sec.

Merci les pros pour votre aide!

jipi


.




.




Starwing
Le #1921706
Essaie
Dim I as Double

--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing

--
"jipi" news:0f6d01c4dedd$00a664e0$
Re bonsoir Denis
J'ai un pb I s'arrête à 32767 hors j'ai un fichier de
95000 lignes que je souhaire en une seule passe, puis le
faire et si oui comment ?

Merci de ton aide

jipi
-----Message d'origine-----
Et comme ça ?
en utilisant "Line Input #1, Tbl(I)" à la place
de "Input #1, Tbl(I)".

Là cela enlève tout les ".
Si tu veux garder les " dans le texte il te faudra lire
chaque ligne

caractère par caractère,
si ;" --> enlever le "
si car quelconque" ---> ne pas enlever le "
denis p.


Option Explicit

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''


Sub ModifFichierTexte()
Dim Tbl()
Dim Ln
Dim I As Integer
'ouvre le fichier texte en lecture
Open "c:testT.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Line Input #1, Tbl(I)
'Debug.Print Tbl(I)
Loop
'Debug.Print "************************************"
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Debug.Print Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''



"jipi" news:278601c4ddfc$35e1e3f0$
Bonjour,

Merci de ta réponse, toutefois elle ne coorespond pas à
mon besoin, je ne me suis pas suffisamment bien exprimé :
dans mes lignes d'enregistrement j'ai à la fois du texte
et des valeurs et mon but est de supprimer les caractères
parasites (des " en plein champ texte : devant grandes et
devant l'hopi) cf mon fichier test
'************************************************
"ce";3;"ième fichier";"est un test"
"où il va se";;"passer ";"des "grandes choses"
"si on";;"ne va pas";"à "l'hopi de suite"
"ce sera";3000;"fois tant mieux"
'************************************************


jipi
-----Message d'origine-----
Salut
A adapté....
1 lire tout le fichier et le mettre ligne par ligne dans
une variable

"Tbl()"
2 fait tes manip sur Tbl
3 écrire le nouveau fichier
denis p.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'


'''''''''''''''''''
'''''
Sub ModifFichierTexte()
Dim Tbl()
Dim I As Integer
'ouvre le fichier texte en lecture
Open "C:Test.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Input #1, Tbl(I)
Loop
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'


''''''''''''
"jipi" news:26b101c4ddda$449b6460$
Bonjour,

J'ai besoin de faire une petite macro pour pour aller
chercher des textes précis, et les remplacer, dans un
fichier csv avant importation (en plus j'ai des "
parasites qui me polluent mon import).

La commande OpenText me permet de lire, d'écrire,
d'ajouter du texte mais comment aller rechercher un
texte


précis et le remplacer ? Là je suis sec.

Merci les pros pour votre aide!

jipi


.




.




jipi
Le #1921705
Bonsoir,

ok pour les fichiers avec énormément de lignes,
effectivement sans changer le format et de plus c'est
rapide!

jipi

-----Message d'origine-----
Pourquoi n'essaies tu pas de l'ouvrir dans WORD puis de
remplacer les " par

rien et de rechercher ton texte aussi dans word
puis tu l'enregistres en conservant son format initial

mjd


Bonjour,

J'ai besoin de faire une petite macro pour pour aller
chercher des textes précis, et les remplacer, dans un
fichier csv avant importation (en plus j'ai des "
parasites qui me polluent mon import).

La commande OpenText me permet de lire, d'écrire,
d'ajouter du texte mais comment aller rechercher un
texte


précis et le remplacer ? Là je suis sec.

Merci les pros pour votre aide!

jipi

.





Publicité
Poster une réponse
Anonyme