esecuzione macro

Ho un foglio calc che ha delle macro.
se lo inserisco come oggetto ole in un documento writer, la prima volta le macro funzionano . poi se salvo e chiudo il documento, se lo riapro le macro non vengono eseguite.

Ciao, risposta fornita ponendo il quesito a Chat GPT:

Capito — è un comportamento abbastanza tipico di LibreOffice quando entrano in gioco macro + oggetti OLE :sweat_smile:
Ti spiego cosa succede e come aggirarlo.

Perché succede

Quando inserisci un file Calc con macro come oggetto OLE dentro Writer:

  1. Alla prima apertura
    L’oggetto è ancora “collegato” al file originale → le macro vengono eseguite.
  2. Dopo salvataggio e riapertura di Writer
    L’oggetto OLE viene trattato come incorporato
    :point_right: LibreOffice non esegue automaticamente le macro degli oggetti OLE incorporati, per motivi di sicurezza.

Quindi:

  • le macro esistono ancora
  • ma non vengono avviate automaticamente
  • e spesso non partono nemmeno su eventi (apertura, modifica, ecc.)

È una limitazione di sicurezza, non un bug vero e proprio.

Controlli da fare subito (rapidi)

:one: Sicurezza macro

Vai in:

Strumenti → Opzioni → Sicurezza → Sicurezza delle macro

Imposta almeno:

  • Medio
    oppure
  • Basso (solo per test)

E assicurati che:

  • il file sia in una cartella attendibile
Strumenti → Opzioni → Sicurezza → Cartelle attendibili

Soluzioni pratiche (quelle che funzionano davvero)

:white_check_mark: SOLUZIONE MIGLIORE: collegare invece di incorporare

Quando inserisci il foglio Calc in Writer:

Inserisci → Oggetto → Oggetto OLE → Da file

:heavy_check_mark: Spunta “Collega al file”
:x: Non incorporare

:point_right: In questo modo:

  • le macro restano nel file Calc originale
  • vengono eseguite correttamente anche dopo riapertura
  • comportamento molto più stabile

:warning: Alternativa: macro nel documento Writer

Se l’oggetto deve restare incorporato:

  • sposta la logica delle macro in Writer
  • fai in modo che Writer:
    • apra/modifichi il foglio OLE
    • richiami manualmente le macro

È più complicato e fragile, ma possibile.

:x: Cosa NON funziona (o funziona male)

  • Macro “Auto_Open” nel Calc OLE
  • Eventi automatici del foglio incorporato
  • Aspettarsi che l’OLE si comporti come un file aperto normalmente

LibreOffice blocca tutto questo di proposito.

Riassunto rapido

  • :heavy_check_mark: È normale
  • :heavy_check_mark: È una limitazione di sicurezza
  • :heavy_check_mark: Collegare il file Calc è la soluzione consigliata
  • :x: Gli OLE incorporati non eseguono macro automaticamente