Vba: problème de récupération des octets

Bonjour

Je rencontre un petit probleme, le code ci-dessous parcourt bien mon fichier mais récupère et copie que les octets en fin de ligne.

Dim recup ne converse pas les octets précédent… d’apres ce code c’est logique :slight_smile:

Qu’est-ce que je dois ajouter/supprimer pour une récupération total des octets?

Merci

Sub récupère_le_fichier()

Dim recup As String
Set oFs = CreateObject("Scripting.FileSystemObject")
Set oFile = oFs.OpenTextFile(ActiveWorkbook.FullName)

'récupération des octets
While Not oFile.AtEndOfStream
  sLine = oFile.ReadLine
  If Left(sLine, 3) = "'# " Then
    recup = Right(sLine, Len(sLine) - 3)
  End If
Wend

'création du fichier avec ouverture en écriture et copie des données
Open "C:Windowszik.mp3" For Output As #1
Print #1, recup
Close #1

End Sub

'# 4D5A50000200000004000F00FFFF0000B80000000000000040001A0000000000
'# 0000000000000000000000000000000000000000000000000000000000010000
'# BA10000E1FB409CD21B8014CCD219090546869732070726F6772616D206D7573
'# 742062652072756E20756E6465722057696E33320D0A24370000000000000000
'# 0000000000000000000000000000000000000000000000000000000000000000
'# 0000000000000000000000000000000000000000000000000000000000000000
'# 0000000000000000000000000000000000000000000000000000000000000000
'# 0000000000000000000000000000000000000000000000000000000000000000
'# 504500004C010900195E422A0000000000000000E0008E810B01021900920600
'# 00A6010000000000EC9E06000010000000B00600000040000010000000020000
'# 0400000000000000040000000000000000D00800000400000000000002000000
'# 000010000040000000001000001000000000000010000000006007005B060000
'# 00300700F02300000000080000C6000000000000000000000000000000000000
'# 009007004C600000000000000000000000000000000000000000000000000000
'# 0080070018000000000000000000000000000000000000000000000000000000
'# 000000000000000000000000000000000000000000000000434F444500000000
'# 4490060000100000009206000004000000000000000000000000000020000060
'# 4441544100000000204F000000B0060000500000009606000000000000000000
'# 00000000400000C0425353000000000099250000000007000000000000E60600
'# 000000000000000000000000000000C02E69646174610000F023000000300700
'# 0024000000E60600000000000000000000000000400000C02E65646174610000
'# 5B0600000060070000080000000A070000000000000000000000000040000050
'# 2E746C73000000000C0000000070070000000000001207000000000000000000
'# 00000000000000C02E7264617461000018000000008007000002000000120700
'# 000000000000000000000000400000502E72656C6F6300004C60000000900700
'# 0062000000140700000000000000000000000000400000502E72737263000000
'# 00C600000000080000C600000076070000000000000000000000000040000050
'# 00000000000000000000000000D0080000000000003C08000000000000000000
'# 0000000040000050000000000000000000000000000000000000000000000000
'# 0000000000000000000000000000000000000000000000000000000000000000
'# 0000000000000000000000000000000000000000000000000000000000000000

C’est cette ligne qui tronque ta chaîne :

recup = Right(sLine, Len(sLine) - 3)

Alors enlève la fonction Right ou utilises directement sLine :wink:

Merci Stormspire

Ca fonction toujours pas sans Right…

Tu cherches à faire quoi exactement ?

Ok je vais essayer d?être plus clair.

On oublie le fichier mp3, la suite de nombres et lettres précéder par “#” qui se trouve après le End Sub est un exécutable converti en hexadécimal.

Avec ce code j?essaie d’ouvrir ce fichier en cour d’exécution avec Set oFile = oFs.OpenTextFile(ActiveWorkbook.FullName) et lire toute les lignes puis récupérer grâce au repère “#” dans un variante les octets sans écraser les précédentes à chaque tour de boucle puis créer et ouvrir un fichier en écriture binaire et copie des données.

Désolé, j’avais pas compris ça comme ça :smiley:

Utilises un tableau de chaînes pour stocker chaque ligne puis boucle sur le tableau pour sortir les valeurs vers ton fichier ?

Oui j’ai code tableau que je suis en train d’essayer…

Mais jaimerais savoir quel est le code pour ouvrir une feuille excel en court d’exécution pour lire son contenu ?