Excel has been terminated due to a blocking dialog: De code in dit project moet worden bijgewerkt voor gebruik op 64-bits systemen
Bij het publiceren van een analyse kan de volgende melding verschijnen: Excel has been terminated due to a blocking dialog: De code in dit project moet worden bijgewerkt voor gebruik op 64-bits systemen.
Dit is geen inhoudelijke foutmelding. Deze melding geeft alleen aan dat tijdens het uitvoeren van een routine een dialoogvenster is verschenen met een inhoudelijke melding. Deze inhoudelijke melding kun je raadplegen via de wachtrij.
Oplossing
- Ga naar: Algemeen / Beheer / Wachtrij.
- Open de taak m.b.t. het publiceren van de analyse.
- Klik op de actie: Fout informatie.
- Klik op de actie: Detail.
- Klik op de afbeelding, deze kan de volgende meldingen tonen:
De code in dit project moet worden bijgewerkt voor gebruik op 64-bits systemen
The code in this project must be updated for use on 64-bit systems
Procedure in Excel
Zoek in de Microsoft Visual Basic macro-editor in het gehele project de DLL-aanroepen door te zoeken op "dll". Vervang deze aanroepen door een "PtrSafe" attribuut.
- Open de analyse in Microsoft Excel.
- Open de Microsoft Visual Basic macro-editor met de sneltoets Alt+F11.
- Start de zoekfunctie met de sneltoets Ctrl+F.
- Wijzig "Zoeken in" in "Huidig project".
- Zoek naar de tekst "dll".
- Vervang de "Declare Function" met een "PtrSafe" attribuut-variant zoals in het voorbeeld.
Voorbeeld
De originele regel ziet er als volgt uit:
Declare Function CoRegisterMessageFilter Lib "OLE32.DLL" (ByVal lFilterIn As Long, ByRef lPreviousFilter) As Long
Voeg een "PtrSafe" attribuut-variant toe.
#If VBA7 Then
Declare PtrSafe Function CoRegisterMessageFilter Lib "OLE32.DLL" (ByVal lFilterIn As Long, ByRef lPreviousFilter) As Long
#Else
Declare Function CoRegisterMessageFilter Lib "OLE32.DLL" (ByVal lFilterIn As Long, ByRef lPreviousFilter) As Long
#End If
Let op:
Daarnaast vervang je de regels waarin "Kernel32" voorkomt, ook door een extra regel met daarin het "PtrSafe" arttribuut. De werkwijze is hetzelfde als in dit voorbeeld.