Exportation de cellule vers fichier texte

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 !

Laosurlamontagne

XLDnaute Occasionnel
Bonjour à tous,

Ma problématique est assez simple mais mon niveau en VBA est hélas trop limité...

Je cherche à extraire les données de 4 colonnes excel vers un fichier txt (dans l'objectif de le travailler ensuite sous latex). J'ai trouvé quelques petites macro sur ce site mais je n'arrive pas à la modifier convenablement:

Code:
        Sub test()
        Dim myFso As Object, csvFile As Object, textLine As String
        Dim exportFileName As String
        Dim curCell As Range
        Dim i As Integer

        exportFileName = "C:\test.txt"

        ' créer le fichier
        Set myFso = CreateObject("Scripting.FileSystemObject")
        Set csvFile = myFso.CreateTextFile(Filename:=exportFileName, overwrite:=True)

        Set curCell = ThisWorkbook.Sheets("MASTER").Range("A1")
        With ThisWorkbook.Sheets("MASTER")
            For i = 1 To .Range("A" & .Rows.Count).End(xlUp).Row
                Set curCell = .Range("A" & i)
                textLine = vbNullString

                While curCell.Text <> vbNullString
                    textLine = textLine & IIf(textLine = vbNullString, vbNullString, vbTab) & curCell.Text
                    Set curCell = curCell.Offset(0, 1)
                Wend
        '        Set curCell = .Range("A" & curCell.Row + 1)
                ' écrire la ligne dans le fichier
                csvFile.WriteLine textLine

            Next i
        End With

        ' fermer le fichier
        csvFile.Close
        Set csvFile = Nothing: Set myFso = Nothing

        End Sub

elle extrait bien les données des cellules pleines uniquement mais je souhaiterais "un retour à la ligne" à chaque cellules et dans "l'ordre de lecture" (i.e de gauche à droite).

Que dois-je modifier dans la macro ci-dessus ?

Merci pour votre aide.
 

Pièces jointes

Re : Exportation de cellule vers fichier texte

Bonjour,

Ce code modifié permet, je pense, d'obtenir le résultat souhaité :

Code:
Sub test()
Dim myFso As Object, csvFile As Object
Dim exportFileName As String
Dim curCell As Range
Dim i As Integer

exportFileName = ThisWorkbook.Path & "\test.txt"
Set myFso = CreateObject("Scripting.FileSystemObject")
Set csvFile = myFso.CreateTextFile(Filename:=exportFileName, overwrite:=True)
Set curCell = ThisWorkbook.Sheets("MASTER").Range("A1")

With ThisWorkbook.Sheets("MASTER")
    For i = 1 To .Range("A" & .Rows.Count).End(xlUp).Row
        Set curCell = .Range("A" & i)
        If curCell.Text = vbNullString Then
            csvFile.WriteLine ""
        Else
            While curCell.Text <> vbNullString
                csvFile.WriteLine curCell.Text
                Set curCell = curCell.Offset(0, 1)
            Wend
        End If
    Next i
End With
csvFile.Close
Set csvFile = Nothing: Set myFso = Nothing
End Sub
 
Re : Exportation de cellule vers fichier texte

Merci pour vote retour !

ca marche sur le fichier exemple joint mais pas sur celui sur lequel je veux travailler. ça plante à la ligne:

Code:
Set csvFile = myFso.CreateTextFile(Filename:=echinon3xportFileName, overwrite:=True)

Quelle pourrait en être la raison ? Les colonnes que je souhaites copier sont les G à I de la ligne 3 à la dernière ligne occupé. Est-ce ceci qui ferait planter la macro ?

Merci pour votre aide.
 
Re : Exportation de cellule vers fichier texte

Bonjour,
Ah OK. Bon alors reprenons le code...
Cette ligne :
Code:
exportFileName = ThisWorkbook.Path & "\test.txt"
affecte, à la variable exportfilename (déclarée As String (Dim exportFileName As String) c'est à dire comme une chaîne de caractères) , le chemin d'accès de ton fichier excel actif (ThisWorkbook.Path) ET le nom du fichier txt (& "\test.txt")
Donc, dans cette ligne :
Code:
Set csvFile = myFso.CreateTextFile(Filename:=exportFileName, overwrite:=True)
"exportfilename" représente le nom de ton fichier txt, inutile de le changer en "echinon3xportFileName"

Alors, recopie le code initial, et reteste... sans rien toucher!
 
- 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 Code VBA
Réponses
7
Affichages
817
Réponses
2
Affichages
809
Réponses
3
Affichages
491
Réponses
3
Affichages
582
Retour