Libreoffice Calc Uitvoeren macro Foutmelding BASIC-runtime-fout. Objectvariabele niet ingesteld

Goeiedag,
ik ken niet veel van Libreoffice Calc. Toch wil ik er een projectje mee uitvoeren en vroeg BING een macro te maken om gegevens van één bestand te synchroniseren met de gegevens van een ander bestand. Hieronder de verkregen macro:

Sub SynchronizeData()
Dim oDocSource As Object
Dim oDocTarget As Object
Dim oSheetSource As Object
Dim oSheetTarget As Object
Dim oCellSource As Object
Dim oCellTarget As Object
Dim i As Integer
Dim j As Integer
Dim lastRow As Integer
Dim etap As Integer
Dim sourceRange As Object
Dim targetRange As Object
Dim sourceValue As String
Dim targetColumn As Integer

' Vraag naar de etappe
etap = InputBox("Welke etappe moet overgedragen worden?", "Etappe Selectie")

' Open de bron- en doelbestanden als ze nog niet geopend zijn

On Error GoTo ErrorHandler
oDocTarget = StarDesktop.loadComponentFromURL("file:///C:\Users\lucca\Documents\Wielrennen/Basis.ods", "_blank", 0, Array())
On Error GoTo 0

' Verwijs naar de werkbladen
oSheetSource = oDocSource.Sheets.getByName("STAGE")
oSheetTarget = oDocTarget.Sheets.getByName("STAGEPTN")

' Bepaal de laatste rij in de bron
lastRow = 2
Do While oSheetSource.getCellByPosition(0, lastRow).String <> ""
    lastRow = lastRow + 1
Loop

' Loop door de rijen van de bron
For i = 2 To lastRow - 1
    sourceValue = oSheetSource.getCellByPosition(0, i).String
    ' Zoek naar de overeenkomstige waarde in de doelkolom
    For j = 252 To 500
        If oSheetTarget.getCellByPosition(2, j).String = sourceValue Then
            ' Bepaal de doelkolom op basis van de etappe
            targetColumn = 4 + etap
            ' Kopieer de waarde van kolom B in de bron naar de doelkolom
            oSheetTarget.getCellByPosition(targetColumn, j).Value = oSheetSource.getCellByPosition(1, i).Value
            Exit For
        End If
    Next j
Next i

' Sla de wijzigingen op en sluit de bestanden
oDocTarget.store()
oDocSource.close(True)
oDocTarget.close(True)

MsgBox "Synchronisatie voltooid!"
Exit Sub

ErrorHandler:
MsgBox “Het document is al geopend of de bestandsnaam/extensie is onjuist.”, 16, “Fout”
End Sub

Wanneer ik deze wil uitvoeren krijg ik foutmelding BASIC-runtime-fout. Objectvariabele niet ingesteld.
Dit gebeurt ter hoogte van regel: oSheetSource = oDocSource.Sheets.getByName(“STAGE”). Wil iemand mij helpen om die macro aan te passen ? Ik gebruik geen betalend abonnement bij BING dus zit ik al gauw aan mijn limiet van vraagstelling. Alvast van harte dank, Lucca

Het brondocument is niet opgegeven
oDocSource is dus niet ingesteld en dus kan oSheetSource die niet vinden

Dank, DiGro !
Intussen is de macro bijgewerkt, maar werkt nog steeds niet. M.a.w. De macro neemt het getal uit het brondocument niet over naar het doeldocument. Er verschijnt gewoon niks. Ik krijg wel de boodschap “synchronisatie voltooid”, echter zonder het beoogde resultaat.
Ziehier de bijgewerkte code:

Sub SynchronizeData()
Dim oDocSource As Object
Dim oDocTarget As Object
Dim oSheetSource As Object
Dim oSheetTarget As Object
Dim oCellSource As Object
Dim oCellTarget As Object
Dim i As Integer
Dim j As Integer
Dim lastRow As Integer
Dim etap As Integer
Dim sourceRange As Object
Dim targetRange As Object
Dim sourceValue As String
Dim targetColumn As Integer
Dim Props(0) As New com.sun.star.beans.PropertyValue

' Vraag naar de etappe
etap = InputBox("Welke etappe moet overgedragen worden?", "Etappe Selectie")

' Open de bron- en doelbestanden als ze nog niet geopend zijn
oDocSource = StarDesktop.loadComponentFromURL("file:///C:/Users/lucca/Documents/Wielrennen/Etap.ods", "_blank", 0, Array())
oDocTarget = StarDesktop.loadComponentFromURL("file:///C:/Users/lucca/Documents/Wielrennen/Basis.ods", "_blank", 0, Props())
    
' Verwijs naar de werkbladen
oSheetSource = oDocSource.Sheets.getByName("STAGE")
oSheetTarget = oDocTarget.Sheets.getByName("STAGEPTN")

’ Bepaal de laatste rij in de bron
lastRow = 2
Do While oSheetSource.getCellByPosition(0, lastRow).String <> “”
lastRow = lastRow + 1
Loop

’ Loop door de rijen van de bron
For i = 2 To lastRow - 1
’ Haal de waarde uit kolom A van de bron (Etappe-nummer)
sourceValue = oSheetSource.getCellRangeByName(“A” & i).Value

' Zoek naar de overeenkomstige waarde in de doelkolom (C vanaf rij 252)
For j = 252 To 500
    targetValue = oSheetTarget.getCellRangeByName("C" & j).Value
    If targetValue = sourceValue Then
        ' Bepaal de doelkolom voor etappegegevens
        targetColumn = 4 + etap - 1
        
        ' Kopieer de waarde van kolom B in de bron naar de doelkolom in de juiste rij
        sourceCellValue = oSheetSource.getCellRangeByName("B" & i).Value
        
        ' Schrijf de waarde in de juiste cel van het doelbestand
        oSheetTarget.getCellRangeByName(Chr(65 + targetColumn) & j).Value = sourceCellValue
        
        ' Controleer of de waarde is geschreven
        MsgBox "Doelbestand " & Chr(65 + targetColumn) & j & " waarde na schrijven: " & oSheetTarget.getCellRangeByName(Chr(65 + targetColumn) & j).Value
        
        ' Stop de innerlijke lus zodra een overeenkomst is gevonden
        Exit For
    End If
Next j

Next i

' Sla de wijzigingen op en sluit de bestanden
oDocTarget.store()
oDocSource.close(True)
oDocTarget.close(True)

MsgBox "Synchronisatie voltooid!"
Exit Sub

End Sub