Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro pour ouvir fichier et remplacer du texte?

10 réponses
Avatar
fred33
Bonjour,
J'ai cette macro (excel 2010) pour ajouter du texte
Sub remplace()
Dim iFile As Integer
iFile = FreeFile
Open "C:\fichier.txt" For Append As #iFile
Print #iFile, "Test"
Close #iFile
End Sub
J'aimerais maintenant rechercher et remplacer du texte (exemple le texte
"Nom" par le Nom réel du profil..) dans ce fichier et pour terminer changer
l'extension de fichier.txt en fichier.js
En vous remercint pour votre aide

10 réponses

Avatar
DanielCo
Bonjour,
Tu as un exemple ici :
http://www.exceltip.com/st/Replace_text_in_a_text_file_using_VBA_in_Microsoft_Excel/468.html
Le principe est le suivant :
1. lire le fichier
2. Ecrire le fichier modifié
3. Supprimer le fichier original
4. Renommer le fichier en sortie; tu peux donc le renommer avec
l'extension ".js"
C'est la ligne :
Name TargetFile As SourceFile ' rename temporary file
en modifiant "SourceFile".
Daniel

Bonjour,
J'ai cette macro (excel 2010) pour ajouter du texte
Sub remplace()
Dim iFile As Integer
iFile = FreeFile
Open "C:fichier.txt" For Append As #iFile
Print #iFile, "Test"
Close #iFile
End Sub
J'aimerais maintenant rechercher et remplacer du texte (exemple le texte
"Nom" par le Nom réel du profil..) dans ce fichier et pour terminer changer
l'extension de fichier.txt en fichier.js
En vous remercint pour votre aide
Avatar
fred33
Merci Daniel pour ta réponse rapide...
Je vais tester..mais je ne voudrais pas supprimer le fichier original...


"DanielCo" a écrit dans le message de
news:imn3ae$sun$
Bonjour,
Tu as un exemple ici :
http://www.exceltip.com/st/Replace_text_in_a_text_file_using_VBA_in_Microsoft_Excel/468.html
Le principe est le suivant :
1. lire le fichier
2. Ecrire le fichier modifié
3. Supprimer le fichier original
4. Renommer le fichier en sortie; tu peux donc le renommer avec
l'extension ".js"
C'est la ligne :
Name TargetFile As SourceFile ' rename temporary file
en modifiant "SourceFile".
Daniel

Bonjour,
J'ai cette macro (excel 2010) pour ajouter du texte
Sub remplace()
Dim iFile As Integer
iFile = FreeFile
Open "C:fichier.txt" For Append As #iFile
Print #iFile, "Test"
Close #iFile
End Sub
J'aimerais maintenant rechercher et remplacer du texte (exemple le texte
"Nom" par le Nom réel du profil..) dans ce fichier et pour terminer
changer l'extension de fichier.txt en fichier.js
En vous remercint pour votre aide




Avatar
DanielCo
Alors, enlève la ligne :
Kill SourceFile ' delete original file
Daniel


Merci Daniel pour ta réponse rapide...
Je vais tester..mais je ne voudrais pas supprimer le fichier original...


"DanielCo" a écrit dans le message de
news:imn3ae$sun$
Bonjour,
Tu as un exemple ici :
http://www.exceltip.com/st/Replace_text_in_a_text_file_using_VBA_in_Microsoft_Excel/468.html
Le principe est le suivant :
1. lire le fichier
2. Ecrire le fichier modifié
3. Supprimer le fichier original
4. Renommer le fichier en sortie; tu peux donc le renommer avec l'extension
".js"
C'est la ligne :
Name TargetFile As SourceFile ' rename temporary file
en modifiant "SourceFile".
Daniel

Bonjour,
J'ai cette macro (excel 2010) pour ajouter du texte
Sub remplace()
Dim iFile As Integer
iFile = FreeFile
Open "C:fichier.txt" For Append As #iFile
Print #iFile, "Test"
Close #iFile
End Sub
J'aimerais maintenant rechercher et remplacer du texte (exemple le texte
"Nom" par le Nom réel du profil..) dans ce fichier et pour terminer
changer l'extension de fichier.txt en fichier.js
En vous remercint pour votre aide




Avatar
fred33
Ok j'ai testé et ça fonctionne bien effectivement sans variable...

Au départ le fichier.js contien les mots Nom.Prenom et Prenom.Nom
Dim path, NP, PN, generic1, generic2 As String
J'ai défini un path ("c:Doc")
En "ReplaceInTextFile.txt" j'ai mis mon "fichier.js"
Je lance par un userform sur ma Feuil1qui me permet d'inscrire le Nom et le
prénom du profil! (inscrits en variable donc)
NP = NOM & "." & Prenom
PN = Prenom & "." & NOM
generic1 = "Nom.Prénom"
generic2 = "Prénom.Nom"
Mon dernier souci de taille...dans cette macro.. bloque sur les variables de
cette ligne
ReplaceTextInFile ThisWorkbook.path & "ReplaceInTextFile.txt", "|", ";"
(les caractères à modifier sont en quote et sont bien pris dans ce cas)
Que j'ai adapté pour mon cas en :
ReplaceTextInFile path & "fichier.js", generic1, NP (là j'ai le message
d'erreur)
ReplaceTextInFile path & "fichier.js", generic2, PN (là aussi)
message d'erreur :
"Erreur de compilation: Type d'argument ByRef incompatible"

Merci pour vos éclaircissements!


"DanielCo" a écrit dans le message de
news:imnas4$eii$
Alors, enlève la ligne :
Kill SourceFile ' delete original file
Daniel


Merci Daniel pour ta réponse rapide...
Je vais tester..mais je ne voudrais pas supprimer le fichier original...


"DanielCo" a écrit dans le message de
news:imn3ae$sun$
Bonjour,
Tu as un exemple ici :
http://www.exceltip.com/st/Replace_text_in_a_text_file_using_VBA_in_Microsoft_Excel/468.html
Le principe est le suivant :
1. lire le fichier
2. Ecrire le fichier modifié
3. Supprimer le fichier original
4. Renommer le fichier en sortie; tu peux donc le renommer avec
l'extension ".js"
C'est la ligne :
Name TargetFile As SourceFile ' rename temporary file
en modifiant "SourceFile".
Daniel

Bonjour,
J'ai cette macro (excel 2010) pour ajouter du texte
Sub remplace()
Dim iFile As Integer
iFile = FreeFile
Open "C:fichier.txt" For Append As #iFile
Print #iFile, "Test"
Close #iFile
End Sub
J'aimerais maintenant rechercher et remplacer du texte (exemple le
texte "Nom" par le Nom réel du profil..) dans ce fichier et pour
terminer changer l'extension de fichier.txt en fichier.js
En vous remercint pour votre aide










Avatar
news.free.fr
"ReplaceInTextFile.txt" représente le fichier à modifier précédé par
un antislash. Poste la totalité de ton code ou ton classeur.
Daniel


Ok j'ai testé et ça fonctionne bien effectivement sans variable...

Au départ le fichier.js contien les mots Nom.Prenom et Prenom.Nom
Dim path, NP, PN, generic1, generic2 As String
J'ai défini un path ("c:Doc")
En "ReplaceInTextFile.txt" j'ai mis mon "fichier.js"
Je lance par un userform sur ma Feuil1qui me permet d'inscrire le Nom et le
prénom du profil! (inscrits en variable donc)
NP = NOM & "." & Prenom
PN = Prenom & "." & NOM
generic1 = "Nom.Prénom"
generic2 = "Prénom.Nom"
Mon dernier souci de taille...dans cette macro.. bloque sur les variables
de cette ligne
ReplaceTextInFile ThisWorkbook.path & "ReplaceInTextFile.txt", "|", ";"
(les caractères à modifier sont en quote et sont bien pris dans ce cas)
Que j'ai adapté pour mon cas en :
ReplaceTextInFile path & "fichier.js", generic1, NP (là j'ai le message
d'erreur)
ReplaceTextInFile path & "fichier.js", generic2, PN (là aussi)
message d'erreur :
"Erreur de compilation: Type d'argument ByRef incompatible"
Avatar
DanielCo
"ReplaceInTextFile.txt" représente le fichier à modifier précédé par
un antislash. Poste la totalité de ton code ou ton classeur.
Daniel


Ok j'ai testé et ça fonctionne bien effectivement sans variable...

Au départ le fichier.js contien les mots Nom.Prenom et Prenom.Nom
Dim path, NP, PN, generic1, generic2 As String
J'ai défini un path ("c:Doc")
En "ReplaceInTextFile.txt" j'ai mis mon "fichier.js"
Je lance par un userform sur ma Feuil1qui me permet d'inscrire le Nom et le
prénom du profil! (inscrits en variable donc)
NP = NOM & "." & Prenom
PN = Prenom & "." & NOM
generic1 = "Nom.Prénom"
generic2 = "Prénom.Nom"
Mon dernier souci de taille...dans cette macro.. bloque sur les variables
de cette ligne
ReplaceTextInFile ThisWorkbook.path & "ReplaceInTextFile.txt", "|", ";"
(les caractères à modifier sont en quote et sont bien pris dans ce cas)
Que j'ai adapté pour mon cas en :
ReplaceTextInFile path & "fichier.js", generic1, NP (là j'ai le message
d'erreur)
ReplaceTextInFile path & "fichier.js", generic2, PN (là aussi)
message d'erreur :
"Erreur de compilation: Type d'argument ByRef incompatible"

Merci pour vos éclaircissements!


"DanielCo" a écrit dans le message de
news:imnas4$eii$
Alors, enlève la ligne :
Kill SourceFile ' delete original file
Daniel


Merci Daniel pour ta réponse rapide...
Je vais tester..mais je ne voudrais pas supprimer le fichier original...


"DanielCo" a écrit dans le message de
news:imn3ae$sun$
Bonjour,
Tu as un exemple ici :
http://www.exceltip.com/st/Replace_text_in_a_text_file_using_VBA_in_Microsoft_Excel/468.html
Le principe est le suivant :
1. lire le fichier
2. Ecrire le fichier modifié
3. Supprimer le fichier original
4. Renommer le fichier en sortie; tu peux donc le renommer avec
l'extension ".js"
C'est la ligne :
Name TargetFile As SourceFile ' rename temporary file
en modifiant "SourceFile".
Daniel

Bonjour,
J'ai cette macro (excel 2010) pour ajouter du texte
Sub remplace()
Dim iFile As Integer
iFile = FreeFile
Open "C:fichier.txt" For Append As #iFile
Print #iFile, "Test"
Close #iFile
End Sub
J'aimerais maintenant rechercher et remplacer du texte (exemple le
texte "Nom" par le Nom réel du profil..) dans ce fichier et pour
terminer changer l'extension de fichier.txt en fichier.js
En vous remercint pour votre aide










Avatar
fred33
Dès que je pose generic1 dans la ligne
ReplaceTextInFile path & "fichier.js", generic1, NP
J'ai le message d'erreur "Erreur de compilation: Type d'argument ByRef
incompatible" avec le terme generic1 mis en évidence
Voici mon code :
Sub TestReplaceTextInFile()
Dim path, NP, PN, generic1, generic2, fichier As String
NP = NOM & "." & Prenom
PN = Prenom & "." & NOM
generic1 = "Nom.Prénom"
generic2 = "Prénom.Nom"
fichier = "xpinstall.js"
path = "D:Documents"
'ReplaceTextInFile ThisWorkbook.path & "ReplaceInTextFile.txt", "|", ";"
'ligne macro d'origine
ReplaceTextInFile path & fichier, generic1, NP
End Sub

Merci pour votre aide



"DanielCo" a écrit dans le message de
news:4d8f638c$0$27743$
"ReplaceInTextFile.txt" représente le fichier à modifier précédé par un
antislash. Poste la totalité de ton code ou ton classeur.
Daniel


Ok j'ai testé et ça fonctionne bien effectivement sans variable...

Au départ le fichier.js contien les mots Nom.Prenom et Prenom.Nom
Dim path, NP, PN, generic1, generic2 As String
J'ai défini un path ("c:Doc")
En "ReplaceInTextFile.txt" j'ai mis mon "fichier.js"
Je lance par un userform sur ma Feuil1qui me permet d'inscrire le Nom et
le prénom du profil! (inscrits en variable donc)
NP = NOM & "." & Prenom
PN = Prenom & "." & NOM
generic1 = "Nom.Prénom"
generic2 = "Prénom.Nom"
Mon dernier souci de taille...dans cette macro.. bloque sur les variables
de cette ligne
ReplaceTextInFile ThisWorkbook.path & "ReplaceInTextFile.txt", "|", ";"
(les caractères à modifier sont en quote et sont bien pris dans ce cas)
Que j'ai adapté pour mon cas en :
ReplaceTextInFile path & "fichier.js", generic1, NP (là j'ai le message
d'erreur)
ReplaceTextInFile path & "fichier.js", generic2, PN (là aussi)
message d'erreur :
"Erreur de compilation: Type d'argument ByRef incompatible"

Merci pour vos éclaircissements!


"DanielCo" a écrit dans le message de
news:imnas4$eii$
Alors, enlève la ligne :
Kill SourceFile ' delete original file
Daniel


Merci Daniel pour ta réponse rapide...
Je vais tester..mais je ne voudrais pas supprimer le fichier
original...


"DanielCo" a écrit dans le message de
news:imn3ae$sun$
Bonjour,
Tu as un exemple ici :
http://www.exceltip.com/st/Replace_text_in_a_text_file_using_VBA_in_Microsoft_Excel/468.html
Le principe est le suivant :
1. lire le fichier
2. Ecrire le fichier modifié
3. Supprimer le fichier original
4. Renommer le fichier en sortie; tu peux donc le renommer avec
l'extension ".js"
C'est la ligne :
Name TargetFile As SourceFile ' rename temporary file
en modifiant "SourceFile".
Daniel

Bonjour,
J'ai cette macro (excel 2010) pour ajouter du texte
Sub remplace()
Dim iFile As Integer
iFile = FreeFile
Open "C:fichier.txt" For Append As #iFile
Print #iFile, "Test"
Close #iFile
End Sub
J'aimerais maintenant rechercher et remplacer du texte (exemple le
texte "Nom" par le Nom réel du profil..) dans ce fichier et pour
terminer changer l'extension de fichier.txt en fichier.js
En vous remercint pour votre aide
















Avatar
DanielCo
Ca fonctionne en définissant les variables :
Dim path, NP As String, PN, generic1 As String, generic2 As String,
fichier As String
(je n'ai pas testé plus avant).
Daniel

Dès que je pose generic1 dans la ligne
ReplaceTextInFile path & "fichier.js", generic1, NP
J'ai le message d'erreur "Erreur de compilation: Type d'argument ByRef
incompatible" avec le terme generic1 mis en évidence
Voici mon code :
Sub TestReplaceTextInFile()
Dim path, NP, PN, generic1, generic2, fichier As String
NP = NOM & "." & Prenom
PN = Prenom & "." & NOM
generic1 = "Nom.Prénom"
generic2 = "Prénom.Nom"
fichier = "xpinstall.js"
path = "D:Documents"
'ReplaceTextInFile ThisWorkbook.path & "ReplaceInTextFile.txt", "|", ";"
'ligne macro d'origine
ReplaceTextInFile path & fichier, generic1, NP
End Sub

Merci pour votre aide
Avatar
fred33
Eh bien merci pour tout...J'avais pourtant posé
Dim path, NP, PN, generic1, generic2 As String
La macro fonctionne...manque juste à récupérer le "Name TargetFile As
SourceFile" car dans mon exemple le SourceFile est un path...
Encore merci pour votre aide ;)

"DanielCo" a écrit dans le message de
news:4d8f83ed$0$10702$
Ca fonctionne en définissant les variables :
Dim path, NP As String, PN, generic1 As String, generic2 As String,
fichier As String
(je n'ai pas testé plus avant).
Daniel

Dès que je pose generic1 dans la ligne
ReplaceTextInFile path & "fichier.js", generic1, NP
J'ai le message d'erreur "Erreur de compilation: Type d'argument ByRef
incompatible" avec le terme generic1 mis en évidence
Voici mon code :
Sub TestReplaceTextInFile()
Dim path, NP, PN, generic1, generic2, fichier As String
NP = NOM & "." & Prenom
PN = Prenom & "." & NOM
generic1 = "Nom.Prénom"
generic2 = "Prénom.Nom"
fichier = "xpinstall.js"
path = "D:Documents"
'ReplaceTextInFile ThisWorkbook.path & "ReplaceInTextFile.txt", "|", ";"
'ligne macro d'origine
ReplaceTextInFile path & fichier, generic1, NP
End Sub

Merci pour votre aide




Avatar
DanielCo
Tu doios spécifier le type ppour chaque variable; dans ta syntaxe le
"as String" ne s'applique qu'à generic2.
La variable "SourceFile" est composée de : path & fichier.
Daniel

Eh bien merci pour tout...J'avais pourtant posé
Dim path, NP, PN, generic1, generic2 As String
La macro fonctionne...manque juste à récupérer le "Name TargetFile As
SourceFile" car dans mon exemple le SourceFile est un path...
Encore merci pour votre aide ;)

"DanielCo" a écrit dans le message de
news:4d8f83ed$0$10702$
Ca fonctionne en définissant les variables :
Dim path, NP As String, PN, generic1 As String, generic2 As String, fichier
As String
(je n'ai pas testé plus avant).
Daniel

Dès que je pose generic1 dans la ligne
ReplaceTextInFile path & "fichier.js", generic1, NP
J'ai le message d'erreur "Erreur de compilation: Type d'argument ByRef
incompatible" avec le terme generic1 mis en évidence
Voici mon code :
Sub TestReplaceTextInFile()
Dim path, NP, PN, generic1, generic2, fichier As String
NP = NOM & "." & Prenom
PN = Prenom & "." & NOM
generic1 = "Nom.Prénom"
generic2 = "Prénom.Nom"
fichier = "xpinstall.js"
path = "D:Documents"
'ReplaceTextInFile ThisWorkbook.path & "ReplaceInTextFile.txt", "|", ";"
'ligne macro d'origine
ReplaceTextInFile path & fichier, generic1, NP
End Sub

Merci pour votre aide