Condividi:        

Macro per aprire un file .msg da excel

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

Macro per aprire un file .msg da excel

Postdi Marco75CT » 04/03/15 13:02

Ciao,
ho un file excel dal quale dovrei aprire un file outlook salvato nella stessa cartella dell'excel.
Ho provato con questo codice, ma non funziona

Codice: Seleziona tutto
Public Sub mApriFile()

On Error GoTo RigaErrore

    Dim sh As Worksheet
    Dim wrk As Workbook
    Dim sPath As String
    Dim sNomeFile As String
    Dim lRisposta As Long

    sPath = "Z:\Cartella\Sottocartella\"
    Set sh = Worksheets("home")

    With sh

        sNomeFile = .Range("D5").Value & ".msg"
        lRisposta = MsgBox(Prompt:="Vuoi aprire il file: " _
        & sNomeFile, Title:="Attenzione", _
        Buttons:=vbYesNo + vbQuestion)

        If lRisposta = vbYes Then
            Workbooks.Open (sPath & sNomeFile)
        End If

    End With

RigaChiusura:
    Set sh = Nothing
    Exit Sub

RigaErrore:
    MsgBox Err.Number & vbNewLine & Err.Description
    Resume RigaChiusura

End Sub


Dove sbaglio?
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Sponsor
 

Re: Macro per aprire un file .msg da excel

Postdi ricky53 » 04/03/15 13:18

Ciao,
l'istruzione di apertura che hai utilizzato non è valida per i file che vuoi utilizzare tu.

Leggi quanto riportato QUI
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per aprire un file .msg da excel

Postdi Marco75CT » 04/03/15 15:34

Ciao Ricky,
grazie per la risposta.
Ho letto il link che mi hai dato, ma non riesco ugualmente ad aprire il file.
Mi potresti aiutare con un esempio?
Grazie
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Macro per aprire un file .msg da excel

Postdi Anthony47 » 04/03/15 15:40

ho un file excel dal quale dovrei aprire un file outlook salvato nella stessa cartella dell'excel

Questa frase e' incomprensibile, ed e' smentita dal codice (vedi sPath = "Z:\Cartella\Sottocartella\").
Comunque e' ovvio che se si tratta di un messaggio di outlook non puoi aprirlo come se fosse un Workbook [vedi Workbooks.Open (sPath & sNomeFile)].
Io suggerirei questa modifica:
1)In testa al modulo inserisci questa dichiarazione:
Codice: Seleziona tutto
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

2)Poi modifica questa parte
If lRisposta = vbYes Then
Workbooks.Open (sPath & sNomeFile)
End If

In:
Codice: Seleziona tutto
        If lRisposta = vbYes Then
            lngx = ShellExecute(vbNull, "Open", (sPath & sNomeFile), "", "", vbNormalFocus)
        End If

In questo modo il messaggio dovrebbe essere aperto dall' aplicazione preposta, nel tuo Pc, all' apertura dei messaggi di posta.

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

Re: Macro per aprire un file .msg da excel

Postdi Marco75CT » 04/03/15 16:10

Ciao Anthony,
ho provato come mi hai detto

Codice: Seleziona tutto
    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
    On Error GoTo RigaErrore

        Dim sh As Worksheet
        Dim wrk As Workbook
        Dim sPath As String
        Dim sNomeFile As String
        Dim lRisposta As Long

        sPath = "Z:\Cartella\Sottocartella\"
        Set sh = Worksheets("home")

        With sh

            sNomeFile = .Range("D5").Value & ".msg"
            lRisposta = MsgBox(Prompt:="Vuoi aprire il file: " _
            & sNomeFile, Title:="Attenzione", _
            Buttons:=vbYesNo + vbQuestion)

        If lRisposta = vbYes Then
            lngx = ShellExecute(vbNull, "Open", (sPath & sNomeFile), "", "", vbNormalFocus)
        End If

        End With

RigaChiusura:
        Set sh = Nothing
        Exit Sub

RigaErrore:
        MsgBox Err.Number & vbNewLine & Err.Description
        Resume RigaChiusura

    End Sub


Ma mi da questo errore
Immagine
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Macro per aprire un file .msg da excel

Postdi Anthony47 » 04/03/15 17:38

No, quella che ti ho dato era una dichiarazione (declare) a se stante, da inserire in cima al Modulo; poi ci va la tua macro con la modifica che avevo detto.

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

Re: Macro per aprire un file .msg da excel

Postdi ricky53 » 04/03/15 17:41

Ciao,
leggi il nuovo intervento di Anthony.

Se posso farei un commento alla tua risposta
Ho letto il link che mi hai dato, ma non riesco ugualmente ad aprire il file

Scrivendo quella frase NON hai detto nulla.
Avresti dovuto dire che prove hai fatto e quale codice, estratto dall'esempio del link che ti avevo inviato, hai utilizzato e che messaggio hai ottenuto.

Questo commento è per aiutarti a fornire, nelle tue risposte, informazioni valide che consentono agli utenti di fornirti ausilio.

Dai che ne uscirai.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per aprire un file .msg da excel

Postdi Marco75CT » 04/03/15 18:05

Ah! Ok, scusami, ma non avevo capito.
Ora funziona.
Per favore, sapresti anche come fare in modo che i collegamenti si aggiornino automaticamente e che non compaiano i seguenti avvisi?

Immagine

Immagine
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Macro per aprire un file .msg da excel

Postdi Marco75CT » 04/03/15 18:07

Hai ragione Ricky...mi dispiace davvero se non riesco a seguirvi e non vi do le giuste informazioni...spero di migliorare.
Grazie 1000
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Macro per aprire un file .msg da excel

Postdi ricky53 » 04/03/15 18:20

Ciao,
no problem il commento era esserti utile.

A mia conoscenza, essendo messaggi di Excel che intervengono prima dell'apertura del file, NON si possono togliere ... speriamo che qualche utente potrebbe conoscere un metodo per non farli comparire.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per aprire un file .msg da excel

Postdi Anthony47 » 04/03/15 23:57

Ambedue gli avvisi riguardano la Sicurezza (l'accesso non cosciente a dati esterni puo' pregiudicare la sicurezza e la privacy), quindi io non consiglierei di eliminarli.
Ma se questo aspetto non ti preoccupa allora devi guardare nelle impostazioni di sicurezza.
In Excel: Menu /File /Opzioni /Centro protezione, Impostazioni Centro Protezione /Contenuto esterno; qui scegli la modalita' preferita di accesso a dati esterni.

In Outlook: Menu /File /Opzioni /Centro protezione, Impostazioi Centro Protezione /Download automatico; qui devi cercare l' impostazione preferita di download dati esterni.

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


Torna a Applicazioni Office Windows


Topic correlati a "Macro per aprire un file .msg da excel":


Chi c’è in linea

Visitano il forum: Nessuno e 76 ospiti