Una considerazione su questo suggerimento
> Tipo = strCmd + FormaT(DataZip, "ddmmyyyy") & ".zip"
La variabile [strCmd] in questa riga forse non è corretta...?
La variabile [DataZip] non è riconoscibile, anche se si intuisce...
L'assegnazione della variabile [Prog] è poco affidabile, nel senso che va bene sul tuo PC... di certo... ma non su tutti.
Per questo suggerirei l'uso di FindExecutable al fine di ricavare da codice il PATH reale e non definirlo come Costante.
Sull'utilizzo di SHELL invece, in caso di ZIP di documenti leggeri non impatta di certo... se il "malloppo" fosse di discrete dimensioni, rendere il codice ASINCRONO potrebbe generare problemi... ad esempio invio immediato quando lo ZIP non è ancora terminato...
Per questo motivo si dovrebbe ricorrere all'esecuzione SINCRONA, fattibile in 2 modi:
1) API, ma serve anche capire come adattarne il codice a 32/64bit
http://access.mvps.org/access/api/api0004.htm
2) Oppure molto più comodo e semplice:
Sub SyncShell(ByVal Cmd As String, ByVal WindowStyle As VbAppWinStyle)
VBA.CreateObject("WScript.Shell").Run Cmd, WindowStyle, True
End Sub
Saluti
@Alex