Microsoft 365 VBA tabulation

  • Initiateur de la discussion Initiateur de la discussion BOILEAU
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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...
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,

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
80
Réponses
9
Affichages
386
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
504
Réponses
3
Affichages
600
Retour