Exporter une feuille Excel vers un fichier texte

8test.xlsx (12.79 Ko)

Bonsoir à tous,
Je veux exporter des donnés d'une feuille Excel vers un fichier texte en respectant les emplacements dans le fichier .txt (même cellule vide) .
parce que je veux importer par un autre classeur en respectant leurs emplacements origine.

Merci .

avec code vba

Bonjour Nizar2015

Excel GERE MAL les cellules fusionnées, alors le résultat N'est PAS PARFAIT

J'ai sauvegardé ton fichier au format mht test.mht en enregistrant le code de l'enregistreur de macro dans SaveHtmlUnique

Puis j'ai créé le code OpenHtmlUnique qui ajoute une feuille qui charge le fichier précédemment sauvegardé (et renommé au passage en test1.mht avant de le recharger)

Sub SaveHtmlUnique()
Dim oFSO As Object

Set oFSO = CreateObject("Scripting.FileSystemObject")

    ChDir Environ("USERPROFILE")
    ActiveWorkbook.SaveAs FileName:=Environ("USERPROFILE") & "\test.mht", _
        FileFormat:=xlWebArchive, CreateBackup:=False
    Call oFSO.CopyFile(Environ("USERPROFILE") & "\downloads\test.mht", "test1.mht", True)
End Sub

Sub OpenHtmlUnique()
    ChDir Environ("USERPROFILE")
    ActiveWorkbook.Sheets.Add
    OpenFile FileName:=Environ("USERPROFILE") & "\test1.mht"        
End Sub

Sub OpenFile(FileName As String)
    If FileName = "False" Then Exit Sub

    Dim TargetWorksheet As Worksheet
    Set TargetWorksheet = ActiveSheet

    Application.ScreenUpdating = False
    With Workbooks.Open(FileName)
        ActiveSheet.UsedRange.Copy TargetWorksheet.Range("A1")
        .Close SaveChanges:=False
    End With

End Sub
13expo.xlsx (17.17 Ko)
6impo.xlsx (16.45 Ko)

Bsr

merci beaucoup scraper de ta réponse avec aussi la bonne solution de l'exporter vers fichier mht mais je t'expliquais mieux ce que je veux faire en gardant le même principe et en peux aussi joins les cellules fusionnées pour avoir plus simple .
Le but de petit projet de travailler online un Pc admin avec un fichier ( Expo) pour exporter en .txt et l'envoyer par email et un autre récepteur avec son Pc reçoit ce dernier fichier .txt (ou autre format) c pas grave par son fichier (Impo) de meme mise en page de fichier (Expo)
joindre exemple : fichier ( Expo ) et fichier (Impo).
Remarque
: le nom de fichier .txt (ou autre format) = cellule 'G9'

Bonjour

Pas sûr de tout comprendre, je propose d'exporter les textes des cellules non vides d'une zone prédéfinie E7:L100 (à changer selon le besoin), pour les importer de l'autre côté

Chacun des deux fichiers Expo.xlsm et Impo.xlsm comportent les mêmes codes qui contiennent les deux macros Import et Export pour rendre le processus réversible

Option Explicit
Dim szReportSheet As String

Sub export()
Dim oCell As Range, rg As Range
Dim sh1 As Worksheet
Dim sFileSrc As String, sFileDst As String
sFileSrc = Environ("USERPROFILE") & "\Export.txt"
sFileDst = Environ("USERPROFILE") & "\Export1.txt"

Dim oFso
Set oFso = CreateObject("Scripting.FileSystemObject")
szReportSheet = "report"
Set sh1 = Worksheets(szReportSheet)
Set rg = sh1.Range("E7:L100")
Open sFileSrc For Output As #1
For Each oCell In rg
  If Trim(oCell.text) <> "" Then
    Print #1, oCell.address & ";" & oCell.text
  End If
Next
Close #1
oFso.CopyFile sFileSrc, sFileDst, True
Set oFso = Nothing
End Sub

Sub import()
Dim oCell As Range, rg As Range
Dim sh1 As Worksheet
Dim sFile As String
Dim address As String
Dim text As String
Dim sLine As String
sFile = Environ("USERPROFILE") & "\Export1.txt"
szReportSheet = "report"
Set sh1 = Worksheets(szReportSheet)
If Dir(sFile, vbNormal) <> "" Then
Close #1
Open sFile For Input As #1
While Not EOF(1)
Line Input #1, sLine
address = Split(sLine, ";")(0)
text = sh1.Range(Replace(address, "$", "")).text
text = Split(sLine, ";")(1)
sh1.Range(Replace(address, "$", "")).Value2 = text
Wend
Close #1
Else
MsgBox "ne peut pas ouvrir le fichier :" & sFile
End If
End Sub
10expo.xlsm (31.02 Ko)
6impo.xlsm (32.59 Ko)

Merci beaucoup scraper ça marche bien mais deux problème svp de modifeir le code :

1- le nom de fichier exporté est = la cellule $G$9 dans l'exemple et "texte1"

2-Qui fait exporter les fichiers peut envoyer plusieurs fichiers de different nom par email sont si le receveur reçoit ces fichiers et stoker dans un dossier il choisit parmi ces fichiers pour imposer à chaque fois, avec le fichier impo quand il clik sur "importer fichier" une fenêtre apparaitre vers le dossier et peut choisier parmais le fichier achaque fois un fichier .Txt .

merci d'avance

si le receveur veut choisir un fichier pour l'importer, il existe une méthode Application.FileDialog(msoFileDialogFilePicker)

Il y a aussi la methode Application.GetOpenFileName

Merci beaucoup je trouve le code et ça marche bien mais aidez-moi pour changer le nom de fichier exporté est reçu toujours la cellule $G$9 et de remplacer par une seule fichier est non deux comme dans le code (Export.txt, Export1 txt) est merci infiniment.

methode Application.GetOpenFileName

Sub UseFileDialogOpen()
Dim lngCount As Long

With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.Show
For lngCount = 1 To .SelectedItems.Count
MsgBox .SelectedItems(lngCount)
Next lngCount
End With
End Sub

Sub export()
Dim oCell As Range, rg As Range
Dim sh1 As Worksheet
Dim  sFileDst As String
szReportSheet = "report"
Set sh1 = Worksheets(szReportSheet)
Set rg = sh1.Range("E7:L100")
sFileDst = sh1.Range("G7")
Open sFileDst For Output As #1
For Each oCell In rg
  If Trim(oCell.text) <> "" Then
    Print #1, oCell.address & ";" & oCell.text
  End If
Next
Close #1
End Sub

merci mais une eureur apparaitre

erreur

Bonsoir Nizar

Normal si en G7 il n'y a que le nom du fichier à enregistrer sans le chemin (dossier) où il doit être positionné

Rechercher des sujets similaires à "exporter feuille fichier texte"