Condividi:        

Alert apertura file .pdf

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Alert apertura file .pdf

Postdi scanacc » 18/03/22 12:22

Buongiorno a tutti,
ho creato questa piccola macro per aprire un file .pdf
Codice: Seleziona tutto
Sub MANUALI_Contest_QPI()
'
' Macro1 Macro
'
strPath = "C:\NEW GENERATION\MANUALI \CONTEST.pptx"

ThisWorkbook.FollowHyperlink strPath


'
End Sub

Tutto bene!
Lo apre ma compare un messaggio di Alert che vorrei (solo in questo caso e solo in questa macro) non comparisse.
Il messaggio da Microsoft Office è il seguente:
"Apertura del FILE di C:\NEW GENERATION\MANUALI \CONTEST.pptx in corso.
Alcuni file possono contenere virus o danneggiare in altro modo il computer.
Accertarsi della provenienza del file.
Aprire il file?"
Come posso fare?
Grazie per il sicuro aiuto
PS
Se mi potete poi spiegare come mai questo messaggio non compare per aprire i file .jpg e .ppt mi fate un favore
scanacc
Utente Senior
 
Post: 350
Iscritto il: 06/12/15 10:30

Sponsor
 

Re: Alert apertura file .pdf

Postdi Anthony47 » 18/03/22 23:45

Sono protezioni di sistema operativo, non so quanto siano disabilitabili...

Lascia stare l'hyperlink e usa le API di sistema per aprire i file tramite l'applicazione di default di quel pc. Per questo, in un modulo vba standard, vuoto, incolla questo codice:
Codice: Seleziona tutto
#If VBA7 Then
   Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
        ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, _
        ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
#Else
   Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
        ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
        ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#End If

Sub OpenMyFile()
    ftOpen = "C:\NEW GENERATION\MANUALI \CONTEST.pptx"
    lngX = ShellExecute(vbNull, "Open", ftOpen, "", "", vbMaximizedFocus)
End Sub

Fai in modo che la parte dichiarativa sia in testa al modulo
Poi invece della Sub MANUALI_Contest_QPI eseguirai la Sub OpenAnyFile

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Alert apertura file .pdf

Postdi scanacc » 22/03/22 16:53

Grazie!
Ma dopo Else la scritta mi viene rossa
e poi non capisco cosa vuol dire "Fai in modo che la parte dichiarativa sia in testa al modulo"
Sono proprio imbranato
scanacc
Utente Senior
 
Post: 350
Iscritto il: 06/12/15 10:30

Re: Alert apertura file .pdf

Postdi Anthony47 » 22/03/22 19:33

Ma dopo Else la scritta mi viene rossa
Strano... al massimo dovrebbe essere rossa la parte PRIMA di Else, se usi una versione Office prima di 2010 (cito a mente), e sarebbe normale. Comunque sei riuscito a farla funzionare? Perche' se funziona :D allora non e' grave :D :D

e poi non capisco cosa vuol dire "Fai in modo che la parte dichiarativa sia in testa al modulo"
Significa che prima di #If non deve esserci nulla (ad esempio non puoi copiare il codice sotto una macro preesistente)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Alert apertura file .pdf":


Chi c’è in linea

Visitano il forum: Nessuno e 75 ospiti