Erreur code VBA

Bonjour à tous je suis bien ennuyé par un fichier .xlsm qui "devrait fonctionner", mais j’obtiens l'erreur suivante :

Open sFileName For Binary Lock Read Write As #nFileNum

Ce fichier excel sert à générer des fichiers pour une application : conversion de paramètres midi pour un instrument nommé Omnisphere.

Je suis censé garder un fichier que j'imagine est lié à ce fichier excel, et il devrais générer plusieurs autres fichiers de la même extension ". oxm"

voici la copie du deboger:

2empty.zip (183.00 Octets)
Sub GenerateMidiOxFile()
    With ActiveSheet
        MappingCol = 6

        Do 'Loop over all synths

            'Step 1: Count number of parameters to map for this synth
            MappingLine = 3
            NumberOfMappings = 0

            Do
                If Not IsEmpty(.Cells(MappingLine, MappingCol)) Then
                    NumberOfMappings = NumberOfMappings + 1
                End If

                MappingLine = MappingLine + 1
            Loop Until IsEmpty(.Cells(MappingLine, 2))

            'Step 2: Calculate number of total bytes in MIDIOX file
            NumberOfBytes = 16 + 24 * NumberOfMappings

            'Step 3: Write Header
            nFileNum = FreeFile
            sFileName = ThisWorkbook.Path & "\" & .Cells(1, MappingCol) & ".oxm"
            Open sFileName For Binary Lock Read Write As #nFileNum

            For HeaderLine = 2 To 9
                Put #nFileNum, , CByte(Sheets("MIDIOX Format").Cells(HeaderLine, 6))
            Next HeaderLine

            Put #nFileNum, , CByte(NumberOfMappings)

            Put #nFileNum, , CByte(0)
            Put #nFileNum, , CByte(6)
            Put #nFileNum, , CByte(0)

            Put #nFileNum, , CByte(NumberOfBytes And &HFF&)  'LowByte
            Put #nFileNum, , CByte(Fix(NumberOfBytes / 256)) 'HighByte

            Put #nFileNum, , CByte(0)
            Put #nFileNum, , CByte(0)

            'Step 4: Write Mappings
            MappingLine = 3
            Do
                If Not IsEmpty(.Cells(MappingLine, MappingCol)) Then
                    'Mapping Input
                    Put #nFileNum, , CByte(&HFF&)                                      'Any MIDI channel
                    Put #nFileNum, , CByte(4)                                          'Source Event Type = CC
                    Put #nFileNum, , CByte(.Cells(MappingLine, Range("CC_IN").Column)) 'Cntrl# Min LowByte
                    Put #nFileNum, , CByte(0)                                          'Cntrl# Min HighByte
                    Put #nFileNum, , CByte(.Cells(MappingLine, Range("CC_IN").Column)) 'Cntrl# Max LowByte
                    Put #nFileNum, , CByte(0)                                          'Cntrl# Max HighByte
                    'Put #nFileNum, , CByte(0)                                          'Amount Min LowByte
                    'Put #nFileNum, , CByte(0)                                          'Amount Min HighByte
                    'Put #nFileNum, , CByte(127)                                        'Amount Max LowByte
                    'Put #nFileNum, , CByte(0)                                          'Amount Max HighByte

                    For i = 1 To 4
                        Put #nFileNum, , CByte(&HFF&) 'HighByte/LowByte Min/Max = don't care = FF
                    Next i

                    'Mapping Output
                    Put #nFileNum, , CByte(&HFF&)                                          'Any MIDI channel

                    'Switch between NRPN and CC
                    If .Cells(2, MappingCol + 1) = "NRPN #" Then
                        Put #nFileNum, , CByte(8)                                          'Target Event Type = NRPN
                    Else
                        Put #nFileNum, , CByte(4)                                          'Target Event Type = CC
                    End If

                    Put #nFileNum, , CByte(.Cells(MappingLine, MappingCol + 1) And &HFF&)  'NRPN/Cntrl Min LowByte
                    Put #nFileNum, , CByte(Fix(.Cells(MappingLine, MappingCol + 1) / 256)) 'NRPN/Cntrl Min HighByte
                    Put #nFileNum, , CByte(.Cells(MappingLine, MappingCol + 1) And &HFF&)  'NRPN/Cntrl Max LowByte
                    Put #nFileNum, , CByte(Fix(.Cells(MappingLine, MappingCol + 1) / 256)) 'NRPN/Cntrl Max HighByte
                    Put #nFileNum, , CByte(0)                                              'Amount Min LowByte
                    Put #nFileNum, , CByte(0)                                              'Amount Min HighByte
                    Put #nFileNum, , CByte(.Cells(MappingLine, MappingCol + 2) And &HFF&)  'Amount Max LowByte
                    Put #nFileNum, , CByte(Fix(.Cells(MappingLine, MappingCol + 2) / 256)) 'Amount Max HighByte

                    For i = 1 To 4
                        Put #nFileNum, , CByte(0)
                    Next i
                End If

                MappingLine = MappingLine + 1
            Loop Until IsEmpty(.Cells(MappingLine, 2))

            'Step 5: Write Ending
            For EndLine = 42 To 45
                Put #nFileNum, , CByte(Sheets("MIDIOX Format").Cells(EndLine, 6))
            Next EndLine

            Close #nFileNum

            MappingCol = MappingCol + 3
        Loop Until IsEmpty(.Cells(1, MappingCol))
    End With
End Sub

Il y a des onglets explicatif sur ce qu'on peu et ne pas faire.

ces deux fichiers (excel et .oxm) doivent se trouver dans le même répertoire, il devrait donc générer des fichiers comme expliqué dans cette vidéo à 10min 12 sec, mais rien à faire :

Peut-être vous pouvez au moins m'éclairer sur le code d'erreur, où cela cloche ??

Je vous remercie de votre attention

Bonne journée ^^

EdIT DAN : suppression "AIDE pour un Inculte" dans titre du sujet

Bonjour

Merci de mettre un titre de sujet explicitant votre demande et de lire ces quelques lignes qui vous aideront dans vos demandes et réponse sur ce forum --> https://forum.excel-pratique.com/excel/a-lire-avant-de-poster-charte-du-forum-et-informations-utiles...

J'ai amendé le titre de votre "Aide pour un inculte"

Cordialement

Rechercher des sujets similaires à "erreur code vba"