Microsoft 365 VBA tabulation

BOILEAU

XLDnaute Junior
Bonjour,

Peut-être que quelqu'un pourrait m'aider.
Je souhaite enregistrer une feuille excel qui contient un tableau en un fichier .txt
FanFan38 m'a proposé ce code ci-dessous et il fonctionne super bien. Merci à lui et aussi pour les autres formules VBA.
Son aide a été très précieuse.
Ma contrainte est la suivante : le séparateur de champ doit être le caractère de tabulation (ascii 9)
Après essai du code, j'ai constaté que le séparateur de champ (colonne) était un point virgule. De ce fait l'import par la suite du fichier .txt ne fonctionne pas.
Auriez-vous une idée pour que l'enregistrement du fichier se fasse bien avec lé séparateur adéquate.
Je suis sous Mac.
Merci d'avance pour votre aide.

Frédéric

Sub enregistrer()
Dim i As Long, j As Long, DernièreLigne As Long, chemin As String, fich As String
chemin = ActiveWorkbook.Path
fich = InputBox("Nom du fichier", "Fichier TEXTE")
Application.ScreenUpdating = False 'Fige l'écran (évite les mvt d'écran)
Open chemin & "\" & fich & ".txt" For Output As #1 'Tu crées le fichier text
Worksheets("IMPORT DANS COGILOG").Select
DernièreLigne = Cells(1, 2).SpecialCells(xlCellTypeLastCell).Row - 1
For i = 1 To DernièreLigne
For j = 1 To 107
Print #1, Cells(i, j).Value & ";"; 'ici, le séparateur
Next j
Print #1, Cells(i, j + 1).Value ' ici pas de séparateur pr le saut de ligne
Next i
Close #1
Application.ScreenUpdating = True
MsgBox "La feuille a été enregistré dans : FREDERIC>Utilisateurs>frederic> !"
End Sub
 
Solution
Bonjour,

Enrichi (BBcode):
Sub enregistrer()

  Dim i As Long, j As Long, DernièreLigne As Long, chemin As String, fich As String
  Const Sep = Vbtab ' anciennement = ";"
  chemin = ActiveWorkbook.Path
  fich = InputBox("Nom du fichier", "Fichier TEXTE")
   Application.ScreenUpdating = False  'Fige l'écran (évite les mvt d'écran)
   Open chemin & "\" & fich & ".txt" For Output As #1  'Tu crées le fichier text
   Worksheets("IMPORT DANS COGILOG").Select
   DernièreLigne = Cells(1, 2).SpecialCells(xlCellTypeLastCell).Row - 1
   For i = 1 To DernièreLigne
     For j = 1 To 107
        Print #1, Cells(i, j).Value & Sep; 'ici, le séparateur
     Next j
     Print #1, Cells(i, j + 1).Value ' ici pas de séparateur pr le saut de ligne...

fanch55

XLDnaute Barbatruc
Bonjour,

Enrichi (BBcode):
Sub enregistrer()

  Dim i As Long, j As Long, DernièreLigne As Long, chemin As String, fich As String
  Const Sep = Vbtab ' anciennement = ";"
  chemin = ActiveWorkbook.Path
  fich = InputBox("Nom du fichier", "Fichier TEXTE")
   Application.ScreenUpdating = False  'Fige l'écran (évite les mvt d'écran)
   Open chemin & "\" & fich & ".txt" For Output As #1  'Tu crées le fichier text
   Worksheets("IMPORT DANS COGILOG").Select
   DernièreLigne = Cells(1, 2).SpecialCells(xlCellTypeLastCell).Row - 1
   For i = 1 To DernièreLigne
     For j = 1 To 107
        Print #1, Cells(i, j).Value & Sep; 'ici, le séparateur
     Next j
     Print #1, Cells(i, j + 1).Value ' ici pas de séparateur pr le saut de ligne
   Next i
   Close #1
   Application.ScreenUpdating = True
   MsgBox "La feuille a été enregistré dans : FREDERIC>Utilisateurs>frederic> !"
End Sub
 

BOILEAU

XLDnaute Junior
Bonjour,

Enrichi (BBcode):
Sub enregistrer()

  Dim i As Long, j As Long, DernièreLigne As Long, chemin As String, fich As String
  Const Sep = Vbtab ' anciennement = ";"
  chemin = ActiveWorkbook.Path
  fich = InputBox("Nom du fichier", "Fichier TEXTE")
   Application.ScreenUpdating = False  'Fige l'écran (évite les mvt d'écran)
   Open chemin & "\" & fich & ".txt" For Output As #1  'Tu crées le fichier text
   Worksheets("IMPORT DANS COGILOG").Select
   DernièreLigne = Cells(1, 2).SpecialCells(xlCellTypeLastCell).Row - 1
   For i = 1 To DernièreLigne
     For j = 1 To 107
        Print #1, Cells(i, j).Value & Sep; 'ici, le séparateur
     Next j
     Print #1, Cells(i, j + 1).Value ' ici pas de séparateur pr le saut de ligne
   Next i
   Close #1
   Application.ScreenUpdating = True
   MsgBox "La feuille a été enregistré dans : FREDERIC>Utilisateurs>frederic> !"
End Sub
Bonjour Franch55,

Merci beaucoup pour votre aide.
C'est parfait.
Cordialement,
Frédéric
 

Discussions similaires

Statistiques des forums

Discussions
312 208
Messages
2 086 257
Membres
103 167
dernier inscrit
miriame