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