Sauver un onglet Excel en .txt PUIS ouvrir .txt et remplacer des caractères

Bonjour à tous,

je cherche depuis des heures comment faire : j'ai soit le début, soit la fin d'opérationnel mais jamais le tout.

L'objectif : sauver un onglet Excel en .txt( sans problème d'affichage des caractères UTF-8) puis ouvrir ce même fichier .txt pour y remplacer des caractères avant de le sauvegarder puis le fermer. Recommencer avec un deuxième onglet la même procédure.

Voici mon code actuel qui me permet d'ouvrir les .txt et de remplacer les caractères sur les deux fichiers .txt :

Sub MAJtxt()

Dim TextFile As Integer
Dim filePath As String
Dim FilePath2 As String
Dim FileContent As String

'File Path of Text File
  filePath = "D:\xxx\SKU1.txt"

'Determine the next file number available for use by the FileOpen function
  TextFile = FreeFile

'Open the text file in a Read State
  Open filePath For Input As TextFile

'Store file content inside a variable
  FileContent = Input(LOF(TextFile), TextFile)

'Clost Text File
  Close TextFile

'Find/Replace
  FileContent = Replace(FileContent, ",", ".")

'Determine the next file number available for use by the FileOpen function
  TextFile = FreeFile

'Open the text file in a Write State
  Open filePath For Output As TextFile

'Write New Text data to file
  Print #TextFile, FileContent

'Close Text File
  Close TextFile

  'File Path of Text File
  FilePath2 = "D:\xxx\SKU2.txt"

'Determine the next file number available for use by the FileOpen function
  TextFile = FreeFile

'Open the text file in a Read State
  Open FilePath2 For Input As TextFile

'Store file content inside a variable
  FileContent = Input(LOF(TextFile), TextFile)

'Clost Text File
  Close TextFile

'Find/Replace
  FileContent = Replace(FileContent, ",", ".")

'Determine the next file number available for use by the FileOpen function
  TextFile = FreeFile

'Open the text file in a Write State
  Open FilePath2 For Output As TextFile

'Write New Text data to file
  Print #TextFile, FileContent

'Close Text File
  Close TextFile

MsgBox "All Good"

End Sub

Dès que j'essaye d'ajouter au début un bout de code qui sauvegarde mon onglet en .txt, j'ai des problèmes d'exécution a n'en plus finir...

Petite particularité : Mes deux fichiers .txt "D:\xxx\SKU1.txt" et "D:\xxx\SKU2.txt" existent déjà et la sauvegarde doit être forcée.

Merci par avance pour votre aide !

Bonjour,

autant écrire directement tes fichiers tels qu'ils doivent être.
mais sans fichier excel ni les consignes complètes et détaillées...
eric

Bonjour eriiiic,

Excuse-moi, il me semblait avoir été assez claire. Ci-joint le fichier test contenant les deux onglets que j'essaie de récupérer.

10testtxt.zip (439.55 Ko)

Aussi "autant écrire directement tes fichiers tels qu'ils doivent être." --> ca ne fonctionne pas chez moi en VBA de remplacer les virgules par des points c'est pour cela que je demande ce fonctionnement.

Merci !

Heureusement que j'ai demandé tous les détails...
Quels séparateurs entre les champs ?

Holala...

excuse moi je travaille beaucoup trop tu as raison j'ai oublié 2 éléments ci-dessous les fichiers .txt recherchés (separateur tab) :

3skucargo.zip (77.69 Ko)
5skuwinexpe.zip (16.16 Ko)

Bonjour

Ouvrir des fichiers texte et remplacer un séparateur par un autre, il faut le faire en langage C, et cela permet de traiter des millions de lignes dans le même temps que l'on gère des milliers de lignes dans un langage interprété sans compter que cela fonctionne sur tous les systèmes d'exploitation

Bonsoir,

Sans consigne, tes 2 fichiers sont créés dans le même répertoire que le xlsm.
La macro agit sur le classeur actif, pas la peine d'y copier la macro.
Ecrasement sans alerte comme demandé.

Regarde si ça te va
eric

7testtxt.zip (441.33 Ko)

Impeccable ! merci beaucoup Eriic

Rechercher des sujets similaires à "sauver onglet txt puis ouvrir remplacer caracteres"