Exportation des données d'un classeur en fichier texte

Bonjour à vous tous,

Mes connaissances sur Excel et ses possibilités ainsi que le langage vba étant limitées, je vous contacte afin de solutionner ma requête.

• J'aimerais à partir de données sur un classeur pouvoir les transformer en fichier texte pour les inscrire dans une appli

type Bloc-notes ou Word avec comme séparation un point-virgule entre chaque donnée de chaque colonne.

Merci d'avance pour vos propositions.

9classeur1.xlsx (8.38 Ko)
4transfert.txt (187.00 Octets)

bonsoir,

une proposition via une macro

Sub saveascsvwithsemicolumn()
    fn = Application.GetSaveAsFilename
    If fn <> False Then
        Open fn For Output As 1
        With ActiveSheet
            dl = .UsedRange.Rows.Count
            dc = .UsedRange.Columns.Count
            For i = 1 To dl
            ligne = ""
                For j = 1 To dc
                    ligne = ligne & .Cells(i, j).Text & ";"
                Next j
                Print #1, Left(ligne, Len(ligne) - 1)
            Next i
        End With
        Close 1
    End If
End Sub

Merci pour cette macro parfaitement efficace ! Bravo.

• Après divers essais effectués, il me semble que cette macro est totalement opérationnelle quel que soit le nombre de colonnes

ou lignes, c'est à dire que la macro englobera toujours la globalité de la feuille ? Est-ce bien cela ?

• Si je souhaitais par la suite occulter une colonne, hormis le fait de la supprimer, quelles seraient les modifications

à apporter au niveau de la macro en gardant intact la feuille avec ses données ?

bonsoir,

une version qui ignore les lignes et/ou les colonnes masquées.

Sub saveascsvwithsemicolumn()
    fn = Application.GetSaveAsFilename
    If fn <> False Then
        Open fn For Output As 1
        With ActiveSheet
            dl = .UsedRange.Rows.Count
            dc = .UsedRange.Columns.Count
            For i = 1 To dl
                If .Rows(i).Hidden = False Then
                    ligne = ""
                    For j = 1 To dc
                        If .Columns(j).Hidden = False Then
                            ligne = ligne & .Cells(i, j).Text & ";"
                        End If
                    Next j
                    Print #1, Left(ligne, Len(ligne) - 1)
                End If
            Next i
        End With
        Close 1
    End If
End Sub

Bonsoir, impeccable.

Un grand merci pour cette nouvelle macro.

Bonsoir,

si encore une question à laquelle je n'avais pas pensée.

Si par la suite je voulais réintroduire plus tard ce type fichier de texte modifié (celui-ci contenant toujours des points-virgule)

à nouveau dans un classeur Excel. Opération inverse. Comment faire ?

bonsoir,

à nouveau dans un classeur Excel. Opération inverse. Comment faire ?

charger le fichier et utiliser éventuellement la fonction convertir en choisissant ; comment séparateur. Je ne connais plus par coeur les options disponibles d'excel 2007.

Bonjour, j'ai fini par trouver :

Données / section "Données externes", cliquer sur "À partir du texte" / Choisir le fichier texte /
puis dans la boîte de dialogue "Assistant d'importation" sélectionner "Délimité" et faire "Suivant"/ Dans la section "Séparateurs", cocher "Point-virgule" ou "Virgule".

Encore un grand merci pour les macros.

Rechercher des sujets similaires à "exportation donnees classeur fichier texte"