Ouvrir un fichier txt avec le bloc note et remplacer guillemets

Fermé
SB - 18 août 2014 à 17:35
 SB - 20 août 2014 à 10:14
Bonjour,
Je débute avec VBA et je souhaiterai ouvrir un fichier txt directement via le bloc note et supprimer des guillemets dans ce fichier txt.

Ci-dessous ce que j'ai:

Workbook.Open Filename:= _
"T:\Reprise_donnees.txt" _
, UpdateLinks:=0
Cells.Select
Selection.Replace What:=""""""", Replacement:=""", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveWorkbook.Save
ActiveWindow.Close
End Sub

J'ai eu beau chercher sur le forum je n'arrive pas à trouver la solution

Merci d'avance de votre aide
A voir également:

7 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié par Patrice33740 le 18/08/2014 à 21:42
Bonjour,

Pourquoi passer par le bloc note ???

Essaies ce code qui agit directement sur le fichier choisi :
Sub ElimineGuillemets()
' Choix, lecture et écriture d'un fichier binaire.
Dim nomComplet As String          'nom complet du fichier
Dim nomFichier As String          'nomFichier sélectionné
Dim str As String                 'texte original du fichier
Dim txt As String                 'texte à écrire dans le fichier

  nomComplet = Application.GetOpenFilename("Fichier texte (*.txt),*.txt")
  If nomComplet = "" Then Exit Sub
  nomFichier = Split(nomComplet, "\")(UBound(Split(nomComplet, "\")))
  str = LireTexte(nomComplet)
  If str <> "" Then
    txt = Replace(str, Chr(34), "")
    If EstEcritTexte(txt, nomComplet) Then
      MsgBox "Remplacement des guillemets effectué dans " & nomFichier
    Else
      MsgBox "Echec à l'écriture de " & nomFichier
    End If
  End If

End Sub
Private Function LireTexte(ByVal nomCompletFichier As String) As String
' Lecture  d'un fichier binaire sous forme de texte (caractères ASCII).
Dim n°F As Integer                'numéro du fichier

  On Error Resume Next
  If Dir(nomCompletFichier) = "" Then Exit Function
  n°F = FreeFile
  Open nomCompletFichier For Binary Access Read As #n°F
  LireTexte = Space$(LOF(n°F))
  Get #n°F, , LireTexte
  Close #n°F
  On Error GoTo 0

End Function
Private Function EstEcritTexte(texteASCII As String, nomCompletFichier As String) As Boolean
' Effectivité de l'écriture d'un fichier binaire sous forme de texte (caractères ASCII).
Dim n°F As Integer                'numéro du fichier

  On Error Resume Next
  If Dir(nomCompletFichier) <> "" Then Kill nomCompletFichier
  n°F = FreeFile
  Open nomCompletFichier For Binary Access Write As #n°F
  Put #n°F, , texteASCII
  EstEcritTexte = True
  Close #n°F
  On Error GoTo 0

End Function 


Cordialement
Patrice
0
Bonjour,

je suis obligée de passer par bloc note car c'est lors de l'enregistrement du fichier excel que les guillements sont triplés :"nom"devient """nom""" dans bloc note. Mais si tu as une solution pour éviter ça, ça simplifierait effectivement la manip..!

merci d'avance de ton aide
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
19 août 2014 à 11:44
Il n'y a aucun rapport entre le Bloc Note et Excel !!!

«je suis obligée de passer par bloc note ...» C'est à dire ? Comment opères-tu ?

Pour éliminer les guillemets d'un fichier txt, à l'aide d'une macro VBA Excel, sans l'ouvrir dans Excel et sans passer par le bloc note la solution est ci dessus !!!!
0
Bonjour,

Voici comment je procède :
1 - je crée un fichier excel dans lequel les noms sont entre guillemets :"nom"
2 - j'enregistre ce même fichier en format txt
3 - lorsque j'ouvre ce ficheir txt avec le bloc note, j'ai la surprise de constater que le nombre de guillemets a été triplé : """nom"""
4 - donc dans le bloc note, je fais rechercher """ et remplacer par "
5 - Enfin je peux récupérer le fichier txt pour l'importer dans un ERP

navrée, mais je vois mal comment procéder autrement..
merci de votre aide
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
19 août 2014 à 13:41
Re,

« je vois mal comment procéder autrement..» :
Ne pas mettre les noms entre guillemets, Excel s'en charge !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bonjour,

"Ne pas mettre les noms entre guillemets, Excel s'en charge"

.....et bien non, j'ai bien entendu essayé. Dans Excel, mon format de cellule est pourtant du texte et enregistré en .txt puis ouvert sur bloc note les noms ne sont pas encadrés de guillemet..

navré d'insister mais j'aimerai connaitre le code VBA pour ouvrir un fichier avec le bloc note

merci
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié par Patrice33740 le 19/08/2014 à 18:38
Re,

Voici un exemple :
https://www.cjoint.com/c/DHtsMhn6TJG
Cordialement
Patrice
0
Bonjour,

Merci beaucoup pour la macro. C'est top! Je l'adapte et la teste dès que possible.

Bonne fin de journée
0