Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Collegare MsgBox ad un'azione

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

Collegare MsgBox ad un'azione

Postdi WCB » 22/02/19 13:25

Buongiorno a tutti,
ho una macro che invia una email con allegato aprendo un'istanza di Outlook.
Vorrei che quando sto per inviare mi esca scritto "Stai per inviare questa email" e se clicco su "sì" la invia se clicco su "no" esce.
La macro in questione invia l'email a due destinatari diversi con lo stesso allegato, il messaggio dovrebbe riguardare solo il secondo destinatario.
Spero possiate aiutarmi :?:
Vi ringrazio in anticipo e grazie mille
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Sponsor
 

Re: Collegare MsgBox ad un'azione

Postdi klingklang » 22/02/19 14:56

Ciao, pubblica tutto il codice e vediamo cosa si può fare. In linea di massima è possibile associare diverse azioni ai pulsanti previsti dalla MsgBox, ma occorre capire se e come si può fare specificamente ciò che chiedi
Enrico
Windows 7 + Office 2016 64bit / Windows 10 + Office 365 32/64bit
Avatar utente
klingklang
Utente Junior
 
Post: 97
Iscritto il: 23/11/18 15:01
Località: San Giovanni in Persiceto

Re: Collegare MsgBox ad un'azione

Postdi WCB » 22/02/19 15:52

Ciao e grazie mille per aver risposto :)
Questo è il codice che uso:
(la parte interessata sarebbe a partire da "MailDestinatario2")

Codice: Seleziona tutto
Sub MailFoglioAttivoInPDF()

Dim OutApp As Object
Dim OutMail As Object
Dim v As Variant
Dim StrMsg As String

StrMsg = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd' >"
StrMsg = StrMsg & "<html xmlns='http://www.w3.org/1999/xhtml'>"
StrMsg = StrMsg & "<body>"
StrMsg = StrMsg & _
         "Prova</b></br></body></html>"

MailDestinatario = Range("D3")
v = Join(Application.Transpose(Application.Transpose(Range("a1:d1"))), "")

If VarType(v) <> vbString Then Exit Sub
With ActiveSheet
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=v, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, From:=1, To:=3, OpenAfterPublish:=False
    End With

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
    With OutMail
        .To = MailDestinatario
        .Subject = "Documenti"
        .HTMLBody = StrMsg
        .Attachments.Add v
        .Display
        '.Send
        End With
MailDestinatario2 = Range("D4")
StrMsg = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd' >"
StrMsg = StrMsg & "<html xmlns='http://www.w3.org/1999/xhtml'>"
StrMsg = StrMsg & "<body>"
StrMsg = StrMsg & _
         "Buongiorno,</br>"

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = MailDestinatario2
.Subject = "Documenti"
.HTMLBody = StrMsg
.Attachments.Add v
.Display
'.Send
End With
 
On Error GoTo 0
   
    Set OutMail = Nothing
    Set OutApp = Nothing
With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Collegare MsgBox ad un'azione

Postdi klingklang » 22/02/19 17:25

E' una modifica piuttosto semplice, ma siccome sto scappando e non avrò comodo accesso a un PC fino a lunedì, chiedo ai miei colleghi di intervenire per aiutarti. In caso non potessero, lunedì ci risentiamo. Ciao! :)
Enrico
Windows 7 + Office 2016 64bit / Windows 10 + Office 365 32/64bit
Avatar utente
klingklang
Utente Junior
 
Post: 97
Iscritto il: 23/11/18 15:01
Località: San Giovanni in Persiceto

Re: Collegare MsgBox ad un'azione

Postdi FRIEDRICH » 22/02/19 21:40

Ciao a tutti,
aggiungi dopo la riga
MailDestinatario2 = Range("D4")
il codice:
If MsgBox("Stai per inviare questa email", vbOKCancel, "Conferma invio mail") = vbOK Then
e aggiungi prima della riga
On Error GoTo 0
il codice:
End If
Avatar utente
FRIEDRICH
Utente Junior
 
Post: 30
Iscritto il: 09/07/17 17:14

Re: Collegare MsgBox ad un'azione

Postdi WCB » 23/02/19 14:43

Ciao FRIEDRICH,
ho provato la tua soluzione e funziona 8) grazie mille!

klingklang, stai tranquillo e goditi il weekend.. :D :) (grazie per essere intervenuto)
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Collegare MsgBox ad un'azione

Postdi klingklang » 25/02/19 12:05

Ottimo! Visto che era facile :)
Enrico
Windows 7 + Office 2016 64bit / Windows 10 + Office 365 32/64bit
Avatar utente
klingklang
Utente Junior
 
Post: 97
Iscritto il: 23/11/18 15:01
Località: San Giovanni in Persiceto

Re: Collegare MsgBox ad un'azione

Postdi Anthony47 » 25/02/19 12:20

Ottimo! Visto che era facile :)
Facile e' tutto quel che si sa fare :D :D
Avatar utente
Anthony47
Moderatore
 
Post: 17043
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Collegare MsgBox ad un'azione

Postdi klingklang » 25/02/19 12:26

Certo Anthony, dicevo così solo perché mi è dispiaciuto dover lasciare "appeso" l'utente solo per non aver avuto 5 minuti in più per sistemargli il codice... mi fa piacere che sia intervenuto qualcun altro a ridurre l'attesa per lui ;)
Enrico
Windows 7 + Office 2016 64bit / Windows 10 + Office 365 32/64bit
Avatar utente
klingklang
Utente Junior
 
Post: 97
Iscritto il: 23/11/18 15:01
Località: San Giovanni in Persiceto


Torna a Applicazioni Office Windows


Topic correlati a "Collegare MsgBox ad un'azione":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti