interface excel vers text

A

ALex

Guest
Bonjour,
j'ai un fichier Excel avec 15 colonnes à traiter tous les 3 jours, que je dois enregistrer en fichier texte, je retravaille ensuite ce fichier txt pour remplacer les espace par des "/".
Et il possible de faire une macro qui enregistre le fichier fichier au format txt en y insèrant automatiquement les "/" ? quelqu'un a déjà fait cela ?

Merci
 
M

myDearFriend

Guest
Bonjour Alex,


Ci-joint un exemple qui utilise le code ci-après :

Sub SauvTexte()
Dim Chemin As Variant
Dim C As Range
Dim F As String
   F = ThisWorkbook.Name
   If Right(F, 4) = ".xls" Then F = Left(F, Len(F) - 4)
   Chemin = Application.GetSaveAsFilename(InitialFileName:=F, fileFilter:="Text Files (*.txt), *.txt", Title:="Enregistrer le fichier texte...")
   If Chemin = False Then Exit Sub
   Application.ScreenUpdating = False
   ActiveSheet.Copy
   With ActiveWorkbook
      For Each C In .Sheets(1).UsedRange
         C.Value = Application.WorksheetFunction.Substitute(C.Value, " ", "/")
      Next C
      Application.DisplayAlerts = False
      .SaveAs Filename:=Chemin, FileFormat:=xlText
      .Close
      Application.DisplayAlerts = True
   End With
   Application.ScreenUpdating = True
End Sub


Cordialement.

Didier_mDF
myDearFriend-3.gif
 

Pièces jointes

  • SauvTxtConv.zip
    11.2 KB · Affichages: 27
A

ALex

Guest
Bonjour Didier,
merci pour la réponse rapide ta macro fonctionne parfaitement , mais je me suis mal exprimé.
En fait j'ai une feuille de calcul Excel que je dois enregistrer en format TXT mais l'enregistrement au format TXT sous excel ne me permets pas de séparer les colonnes par des "/" mais uniquement par des tab ou des ";".
Ainsi je voulais savoir s'il etait possible de faire une macro qui enregistrerait ma feuille excel au format Txt en séparant les colonne par des "/".

(désolé de ne pas avoir répondu directement par forum mais je suis un peu novice et je n'avais pas comment cela fonctionnait merci de me l'avoir indiqué et merci pour les infos).
Cordialement
Alex.
 

Pièces jointes

  • ALex.zip
    5.1 KB · Affichages: 27
  • ALex.zip
    5.1 KB · Affichages: 24
  • ALex.zip
    5.1 KB · Affichages: 27
M

myDearFriend

Guest
Bonjour Alex, le Forum.


Pour répondre à ton problème, je pense que tu peux remplacer la procédure SauvTexte() par celle-ci :

Sub SauvConvText()
Dim TabTemp As Variant
Dim Chemin As Variant
Dim F As String, T As String
Dim L As Long, L1 As Long
Dim C As Integer, C1 As Integer, N As Integer
   'Détermine le chemin de sauvegarde
   F = ThisWorkbook.Name
   If Right(F, 4) = ".xls" Then F = Left(F, Len(F) - 4)
   Chemin = Application.GetSaveAsFilename(InitialFileName:=F, fileFilter:="Text Files (*.txt), *.txt", Title:="Enregistrer le fichier texte...")
   If Chemin = False Then Exit Sub
   'Charge les données dans un tableau variant temporaire
   With ActiveSheet
      L = .Cells(1, 1).SpecialCells(xlLastCell).Row
      C = .Cells(1, 1).SpecialCells(xlLastCell).Column
      TabTemp = .Range(.Cells(1, 1), .Cells(L, C)).Value
   End With
   'Crée le fichier txt et l'ouvre
   N = FreeFile()
   Open Chemin For Output As #N
   'Insère les lignes de données
   For L1 = 1 To L
      T = TabTemp(L1, 1)
      For C1 = 2 To C
         T = T & "/" & TabTemp(L1, C1)
      Next C1
      Print #N, T
   Next L1
   'Fermer le fichier
   Close #1
End Sub


Cordialement.

Didier_mDF
myDearFriend-3.gif
 

Discussions similaires

Réponses
18
Affichages
869
Réponses
9
Affichages
246
Réponses
2
Affichages
509

Statistiques des forums

Discussions
312 972
Messages
2 094 051
Membres
105 928
dernier inscrit
mbitso