XL 2016 Transformation .xlsx vers .txt avec conditions

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 !

mactoche

XLDnaute Nouveau
Bonjour à tous

Je cherche à enregistrer mon : "fichier source.xlsx" tout comme le "fichier cible.txt"
Evidement il y a une condition d'affichage, celle de mettre des espaces à la place des colonnes.

les fichiers en PJ

Merci d'avance
 

Pièces jointes

Bonsoir,
Testez le code ci-dessous,
le fichier txt a des formats que je n'appréhende pas complètement,
j'ai essayé de m'y coller au plus près :
VB:
Sub Exportxt()

Dim FSO     As Object 'New FileSystemObject
Dim R       As Range
Dim C       As Range
Dim Target  As Object 'TextStream
Dim W       As String

    FileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
    If FileToOpen <> False Then
        Set FSO = CreateObject("Scripting.FileSystemObject")
            Set Target = FSO.CreateTextFile(FileToOpen)
                For Each R In Range("A1:W19").Rows
                    For Each C In R.Cells
                        Select Case C.Column
                        Case 1:  W = C.Text
                        Case 11:
                            If C = "" Then W = W & " " & String(8, " ") _
                                      Else W = W & " " & Right(String(8, "0") & C, 8)
                        Case Else: W = W & " " & C.Text
                        End Select
                    Next
                    Target.writeline W
                Next
            Target.Close
            Set Target = Nothing
        Set FSO = Nothing
    End If

End Sub
 
Bonsoir,
Testez le code ci-dessous,
le fichier txt a des formats que je n'appréhende pas complètement,
j'ai essayé de m'y coller au plus près :
VB:
Sub Exportxt()

Dim FSO     As Object 'New FileSystemObject
Dim R       As Range
Dim C       As Range
Dim Target  As Object 'TextStream
Dim W       As String

    FileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
    If FileToOpen <> False Then
        Set FSO = CreateObject("Scripting.FileSystemObject")
            Set Target = FSO.CreateTextFile(FileToOpen)
                For Each R In Range("A1:W19").Rows
                    For Each C In R.Cells
                        Select Case C.Column
                        Case 1:  W = C.Text
                        Case 11:
                            If C = "" Then W = W & " " & String(8, " ") _
                                      Else W = W & " " & Right(String(8, "0") & C, 8)
                        Case Else: W = W & " " & C.Text
                        End Select
                    Next
                    Target.writeline W
                Next
            Target.Close
            Set Target = Nothing
        Set FSO = Nothing
    End If

End Sub

Merci ça à l'air de bien fonctionner.
Y a t-il moyen de rajouter un code pour enregistrer le fichier cible en .txt sans désigner un fichier mais en faisant un enregistrement au nom du .xlsx ?

Merci
Christophe
 
VB:
Sub Exportxt()
Dim File    As Variant
Dim Fso     As Object 'New FileSystemObject
Dim R       As Range
Dim C       As Range
Dim Target  As Object 'TextStream
Dim Line    As String

'    File = Application.GetOpenFilename("Text Files (*.txt), *.txt")
    File = Split(ThisWorkbook.FullName, ".")
    File(UBound(File)) = "txt"
    File = Join(File, ".")
    If File <> False Then
        Set Fso = CreateObject("Scripting.FileSystemObject")
            Set Target = Fso.CreateTextFile(File)
                For Each R In Range("A1:W19").Rows
                    For Each C In R.Cells
                        Select Case C.Column
                        Case 1:  Line = C.Text
                        Case 11: ' Valeur sur 8 positions
                            Line = Line & " " & _
                                IIf(C = "", String(8, " "), Right(String(8, "0") & C, 8))
                         Case Else: Line = Line & " " & C.Text
                        End Select
                    Next
                    Target.writeline Line
                Next
            Target.Close
            Set Target = Nothing
        Set Fso = Nothing
    End If

End Sub
 
- 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
Microsoft 365 planning 5*8
Réponses
19
Affichages
1 K
Réponses
0
Affichages
132
Réponses
3
Affichages
213
Retour