Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

VBA - Invio Mail

  • Messaggi
  • ABCDEF@Excel
    00 17/11/2019 17:58
    Saluti a tutti
    Tanto tempo fà sapevo che LIBERO non desiderava che la posta fosse gestita da OUTLOOK. Poi è uscito W10 e forse è cambiato un "qualcosa"
    Ho configurato Outlook2013, in totale ho WindowsMail, Thunderbird e Outlook.
    L'altra sera ho modificato un files per inviare Mail (installando in VBA/Strumenti/ il riferimento Windows Outlook 15.0...)
    Sono riuscito inviare solo la prima Mail, poi più nulla?
    Da inesperto, guardo Outlook e vedo il pulsante "Offline" che è impossibile da "Attivare", mà Ricevo/Invio regolarmente altre mail.
    Allego il files, nel quale Modulo1 e Modulo3 sono solo prove (senza Outlook, che non saprei come far funzionare)
    Vi ringrazio anticipatamente
    [Modificato da ABCDEF@Excel 18/11/2019 03:17]
  • OFFLINE
    by sal
    Post: 5.775
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 18/11/2019 08:13
    Invio Mail
    Ciao ma prima di attivare il riferimento funzionava?, nel caso togli il riferimento.

    fai sapere, Ciao By Sal [SM=x423051]

    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • ABCDEF@Excel
    00 18/11/2019 17:52
    Alla fine ho tolto il riferimento Outlook 15.0 ed invio Mail tramite il Gestore-Posta
    Obligatorio "compilare" i dati delle prime 7 righe verdi
    Funzionante con libero e Gmail per inviare "la stessa "Email"
    Invece per "mail" differenti a utenti differenti, si deve usare un ciclo FOR.
    Il codice dovrà essere modificato (attualmente il files non è idoneo, vedo se riesco nei prossimi giorni)
    Option Explicit
    Sub InviaMail_Gmail_Libero()
    Dim iMsg As Object, iConf As Object, Flds As Object
    Dim MittenteMail As String, Password As String, smtpserver As String
    Dim OggettoMail As String, MessageMail As String, DestinatarioMail As String
    MittenteMail = "??????????" ' indirizzo della Vostra Mail (mail@Gestore), trà ""
    Password = "??????????????" ' inserire la vostra password (del Gestore), trà ""
    smtpserver = "????????????" ' tramite internet cercate i (parametri del Gestore). EX smtp.gmail.com oppure smtp.gmail.com , ... trà ""
    DestinatarioMail = "??????" ' Destinatario della Mail (Destinatario@Gestore), trà ""
        Set iMsg = CreateObject("CDO.Message")
        Set iConf = CreateObject("CDO.Configuration")
        iConf.Load (-1)
        Set Flds = iConf.Fields
            With Flds
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
                .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = MittenteMail
                .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = Password
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpserver
                .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 ' nei stessi parametri del gestore, numero porta d'uscita (25 in caso di problemi)
                .Update
            End With
            OggettoMail = "PROVA-PROVA" ' Inserire soggetto della mail, trà ""
            MessageMail = "ciao, come stai?" ' Inserire Messaggio della mail, trà "" 
            DestinatarioMail = MittenteMail
            With iMsg
                .Configuration = iConf
                .To = DestinatarioMail
                .CC = "" ' qualora fosse necessario (non provato)
                .BCC = "" ' qualora fosse necessario (non provato)
                '.Attachments.Add(allegato) ' qualora fosse necessario (non provato)
                .From = MittenteMail
                .Subject = OggettoMail
                .TextBody = MessageMail
                .Send
            End With
    Set iConf = Nothing
    Set iMsg = Nothing
    Set Flds = Nothing
    End Sub
    
    [Modificato da ABCDEF@Excel 19/11/2019 02:20]
  • ABCDEF@Excel
    00 27/11/2019 19:09
    Usando il codice sopra invio mail regolarmente...
    Ho provato inviare un'allegato e non funziona=errore
    A dire il vero non sò come dichiarare la variabile...
    e neppure come scrivere tale riga>>>'.Attachments.Add(allegato)
    Ringrazio
  • OFFLINE
    rollis13
    Post: 893
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Senior
    Excel 2016-32bit Win11
    00 27/11/2019 22:09
    La teoria vorrebbe che vada scritta così:

    .AddAttachment "C:\percorso completo del documento\Documento.pdf"

    pertanto, se la variabile la valorizzi con tutto il percorso non dovresti aver problemi.
    [Modificato da rollis13 27/11/2019 22:09]

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • ABCDEF@Excel
    00 28/11/2019 01:04
    Dim Ffile as string
    Ffile = "C:\percorso completto\nomefiles.xlsx"<< .
    .AddAttachment Ffile
    .
    Grazie mille, funziona.
    Sapresti darmi un'altra dritta.
    Casella di testo in userform, vorrei poter "andare a capo"
    Ho messo proprieta Multiline=True
    Ma sia con Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) oppure
    Sub TextBox4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    mi scrive piccolissimi (quasi invisibile)???
    [Modificato da ABCDEF@Excel 28/11/2019 02:47]
  • OFFLINE
    rollis13
    Post: 894
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Senior
    Excel 2016-32bit Win11
    00 28/11/2019 01:53
    Presumo che il doppio-apice che ti manca in fondo alla riga sia solo un errore di battitura 😁.

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • ABCDEF@Excel
    00 28/11/2019 02:20
    Adesso se scrivo una frase e premo invio, cerca di posizionarsi sù un'altra textbox, invece se col mouse vado sotto la frase scritta posso continuare a scrivere?
    [Modificato da ABCDEF@Excel 28/11/2019 02:46]
  • OFFLINE
    rollis13
    Post: 895
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Senior
    Excel 2016-32bit Win11
    00 28/11/2019 08:32
    Sarà stata l'ora tarda ma non capisco il contesto di quest'ultima domanda. Si stava gestendo un invio di email, cosa centra un textbox ?
    Forse era il caso di aprire una nuova ed apposita discussione.
    [Modificato da rollis13 28/11/2019 08:33]

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • ABCDEF@Excel
    00 28/11/2019 16:42
    Ciao e scusa
    Stò creando un file "invio multi mail" (no Outlook)
    Dopo aver superato il problema dell'allegato, adesso ne invio pure tre
    Mi rimane un "particolare" (strambo per me)

    Garantisco che non fà nulla di male
    1) Devi salvare fisicamente il file sul PC
    2) Apri l'editor ed avvia "UserForm_Initialize" con F8 = tutto OK (tranne errori in VBA scritti)
    3) Vorrei sapere come scrivere in TextBox4 "con testo a capo?"
    Ps. Opzioni TextBox4/MultiLine = True
    [Modificato da ABCDEF@Excel 28/11/2019 16:53]
  • OFFLINE
    rollis13
    Post: 896
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Senior
    Excel 2016-32bit Win11
    00 28/11/2019 18:01
    Se la tua versione di Excel la prevede, tra le opzioni della TextBox4 metti anche la voce: EnterKeyBehavior a True, dovrebbe bastare.

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • ABCDEF@Excel
    00 28/11/2019 18:30
    Grazie mille con opzioni (MultiLine = True, EnterKeyBehavior a True)
    Funziona con Excel2013, con altri Excel non saprei???
    Trà poco allego un files (v.2013)
  • ABCDEF@Excel
    00 30/11/2019 17:17
    Allego un files che invia multi mail
    Basta compilare le celle AA1:AA4 e poi compilare ce colonne A:H
    Fatemi sapere se trovare errori
  • OFFLINE
    dodo47
    Post: 2.450
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 02/12/2019 11:16
    ciao
    se posso permettermi, manca completamente una gestione di errori...

    Inoltre, nella: Private Sub CommandButton1_Click()
    che senso ha:
    If TextBox1 <> "" Or TextBox1 = "" Then Sheets("Mail").Cells(x, 1) = TextBox1.Value

    (e seguenti)

    ???

    saluti



    Domenico
    Win 10 - Excel 2016
  • ABCDEF@Excel
    00 02/12/2019 13:46
    Grazie, in effetti in CommandButton1_Click() tutte le righe bisogna togliere il pezzo iniziale >>>If TextBoxY <> "" Or TextBoxY = "" Then
    Invece non capisco che intendi per la gestione errori?
    Se la mail e fasulla, non posso farci nulla.
    Se mancano dati apre l'userform e se non li mette esce dalla procedura.
    Comunque le critiche sono bene accette
  • OFFLINE
    dodo47
    Post: 2.451
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 02/12/2019 19:05
    ciao
    intendo la gestione errori del programma (non la "bontà" della mail).

    In altre parole On Error GoTo .....

    saluti



    Domenico
    Win 10 - Excel 2016
  • ABCDEF@Excel
    00 04/12/2019 22:08
    Mi sapresti dire, dove esiste un "eventuale errore" nel VBA (Solo per imparare...?)
    A parte riga31,,,,Grazie mille
    [Modificato da ABCDEF@Excel 04/12/2019 23:15]
  • OFFLINE
    dodo47
    Post: 2.455
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 05/12/2019 10:02
    ciao
    a prescindere da tutto, è buona norma inserire una gestione degli errori, tutto qua

    saluti



    Domenico
    Win 10 - Excel 2016