Problemi licenza EXCEL con metodo CreateObject("Excel.Application")

di nickbi78 il
8 risposte
2° buongiorno e post della giornata su una questione che credo almeno una volta sia capitato a tutti..

su un applicativo di catalogazione, mi è stato chiesto di impostare export fisso di cataloghi sia in formato PDF ed EXCEL fotografico e così ho fatto.
Sta capitando spesso che molti utenti abbiano le nuove licenze di valutazione office dalla 2016 in poi e qui sorge il problema...

Avvio la creazione del file xlsx al seguente codice:

sPath = "c:\miopercorso\"
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook1 = objExcel.Workbooks.Open(sPath & "template.xlsx")
Set objWorksheet1 = objWorkbook1.WorkSheets("Foglio1")

a questo punto, l'applicativo si stoppa perchè avviandosi excel viene richiesta la licenza e l'elaborazione non continua finchè non si chiude inqualche modo la maledetta finestrella...

Temporaneamente ho consigliato di avviare excel prima di effettuare il salvataggio e tenerlo ridotto ad icona ma c'è un modo per bypassare questo blocco da codice (oltre a proporre di acquistare una licenza office)?

Grazie

8 Risposte

  • Installare la licenza è il modo migliore...

    Se hai la finestra si potrebbe anche intercettare la Finestra "#32770" con le API, ed emulare un "CLICK-YES"... tuttavia non è cosa banale.
    Se invece apri prima Excel, poi non si usa CreateObject ma GetObject... altrimenti il Messaggio dovrebbe uscire ugualmente...
  • E poi che vuol dire "bypassare"? Se non hai la licenza qualsiasi modo è illecito.
  • oregon ha scritto:


    E poi che vuol dire "bypassare"? Se non hai la licenza qualsiasi modo è illecito.
    per bypassare non intendevo craccare l'applicativo ma far si che venisse inibita la finestra di licenza.
    se ad ogni modo, excel funziona senza che venga inserita obbligatoriamente una licenza, non si effettua un illecito...
  • oregon ha scritto:


    E poi che vuol dire "bypassare"? Se non hai la licenza qualsiasi modo è illecito.
    E' il classico Alert che ti guida alla registrazione, che temporaneamente non ne blocca la funzionalità... a mio avviso nulla di illecito.
  • Intendevo dire che, se si cerca di modificare l'eseguibile perché l'alert non appaia, è sicuramente un atto illecito.
  • oregon ha scritto:


    Intendevo dire che, se si cerca di modificare l'eseguibile perché l'alert non appaia, è sicuramente un atto illecito.
    Io non avevo avuto l'impressione che questa fosse la richiesta... e nel caso ovviamente è come dici.
  • oregon ha scritto:


    Intendevo dire che, se si cerca di modificare l'eseguibile perché l'alert non appaia, è sicuramente un atto illecito.
    la richiesta era semplicemente quella di intercettare ed avere la possibilità di automatizzare la chiusura della richiesta di licenza affinchè il codice venga eseguito fino alla fine (almeno per l'applicativo in uso).
  • Potresti usare una libreria opensource .net che gestisca il formato xlsx ad esempio EPPlus od altre,
    non sò se sia possibile da Access,
    sicuramente potresti fare un applicazione console in .net e poi chiamarla da Access passando eventuali argomenti
Devi accedere o registrarti per scrivere nel forum
8 risposte