Invio Mail in automatico



  • Invio Mail in automatico
    di biss73 (utente non iscritto) data: 17/01/2015 17:39:16

    Salve a tutti,
    sono di nuovo a chiedervi un aiutino
    vorrei realizzare una macro che mi invii una mail in automatico alla pressione di un pulsante che mi prenda i vari campi ( A. oggetto, testo, allegato ) però vorrei avere la possibilità di:

    A: selezionare il destinatario dalla list box ( che dovrebbe caricare l'elenco dei nominativi presenti nel foglio (MAIL) colonna C

    Oggetto: usare come oggetto della mail il contenuto separato da uno spazio, delle celle A11 ( spazio ) B11 ( spazio ) L17

    Testo: Come testo della mail il contenuto della cella C4

    Allegato: Il foglio Richiesta a partire dal range dalla colonna A7 fino alla Colonna P40

    per poi passare a a fare una serie di cose prima di inviare la mail tipo:

    1 alla pressione del pulsante per inviare la mail dovrei:
    2 incrementare la cella B11 di 1
    3 creare un file .xls che comprende il range dalla colonna A7 fino alla Colonna P40
    4 Salvarlo in C: RICHIESTE con nome preso dalle celle A11 ( spazio ) B11 ( spazio ) L17 in C: RICHIESTE
    5 inviare la Mail ( Con la possibilità di avere una conferma di lettura)
    6 avere un Msgbox che mi avvisi che tutto ciò e stato eseguito
    7 infine cancellare il contenuto delle righe dalla 17 alla 28 e delle celle B12, B36
    8 chiudere il file attuale e salvarlo automaticamente ( in modo tale che quando lo riapro la cella B11 contenga 2 e si aggiorni progressivamente ad ogni invio di una mail

    tenendo conto di:

    nella cella B11 c'è la formula oggi, quando premo il pulsante per inviare la mail e scatenare tutta la squenza di operazioni al momento della creazione del foglio ( che poi spedisco come allegato)dovrebbe cancellarla e salvare solo la data ( in modo tale che il destinatario non legga la data attuale ma la data della richiesta)

    se qualcuno a già una macro con cui è possibile incominciare a lavorarci è ben accetta,
    (se necessario posso anche allegare un file di esempio)
    in attesa del vostro formidabile aiuto ringrazio anticipatamente
    Saluti




  • di Vecchio Frac data: 17/01/2015 20:43:29

    Che client di posta utilizzi? Microsoft Outlook? se sì, versione? se no, specifica.
    Tutte le cose richieste sono fattibili, l'allegato risiede in una posizione nota e accessibile o va scelto dall'utente? o va composto leggendo una serie di celle (questo non è chiaro: "Allegato: Il foglio Richiesta a partire dal range dalla colonna A7 fino alla Colonna P40 ") ?

    E in ordine "per poi passare a a fare una serie di cose prima di inviare la mail tipo: ":
    1) ok, è un pulsante che lancia la mail
    2) ok
    3) cioè l'allegato da spedire... devi proprio creare un xls o un pdf? visto che è un allegato forse lo devi rendere non modificabile
    4) ok
    5) ok, la conferma di lettura dipende dal tuo client di posta
    6) ok
    7) ok
    8) ok

    "tenendo conto di": ok

    "se qualcuno a già una macro con cui è possibile incominciare a lavorarci è ben accetta, ": bè altre volte abbiamo parlato di spedire mail con Excel comunque non è un'impresa impossibile e in ogni caso con un po' di automazione (se usi Outlook) non è difficile venirne fuori.
    Magari un file di esempio con la struttura reale ma con dati non reali sarebbe comodo ^_^






  • di biss73 (utente non iscritto) data: 18/01/2015 01:05:29

    Ciao, grazie vecchio Frac per l'interesse
    per farti capire meglio ciò che intendo realizzare ti allego il file che sto cercando di sviluppare con un foglio di note dove descrivo il tutto.
    cercando nel forum già qualcosa ho realizzato pero una mano di un esperto come te è essenziale per risolvere e raggiungere l'obbiettivo
    grazie ancora
    saluti



  • di Vecchio Frac data: 19/01/2015 07:05:14

    Hai postato un file in formato xlsm, ma il risultato va in xls. Per compatibilità? qualcuno ha Excel 2003?





  • di biss73 (utente non iscritto) data: 19/01/2015 13:44:28

    Ciao, Vecchio Frac si in effetti ho postato un file xlsm e il risultato serve averlo in xlsx non xls ( piccola disattenzione mia ) ho fatto già più di qualcosa rubacchiando nel forum e riadattandolo alle mie richieste,
    e strano funziona anche
    ti chiedo: visto che è un file che è su un server come posso fare per sapere chi lo apre in modo da riempire automaticamente alcuni campi ( tipo Richiedente)
    posto il codice Gradirei un parere da un esperto come te e magari un aggiustatina se opportuna ( di sicuro ci serve).
    Grazie e buon lavoro
     
    Private Sub CommandButton1_Click()
    Dim WIn As Worksheet
    Dim destinatario As String
    Dim ws As Worksheet
    Dim TestoEmail As String
    TestoEmail = [C4]
    
    Dim i As Integer
    Dim j As Integer
    
    Set WIn = ThisWorkbook.Worksheets("Richiesta")  ' determino il foglio di lavoro
    Set OutApp = CreateObject("Outlook.Application") ' determino il sistema di posta
    
    ThisWorkbook.Activate
    
        NomeFile = Format(Now(), "yyyy_mm_dd") & " _ " & WIn.Cells(11, 1) & " _ " & WIn.Cells(11, 2).Value ' determino il nome del file
       
        ThisWorkbook.Windows(1).SelectedSheets.Copy   ' copio il foglio attuale
        ActiveWorkbook.ConflictResolution = xlLocalSessionChanges
        ActiveWorkbook.Activate
        Range(Cells(1, 1), (Cells(7, 15))).Select  ' seleziono le celle che non mi servono
        Selection.Delete                           ' le cancello
        For Each ws In Worksheets
            Cells.Select
            Application.CutCopyMode = False
            Selection.Copy
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            Cells(1, 1).Select
            Application.CutCopyMode = False
        Next ws
        ActiveWorkbook.SaveAs Filename:=WIn.Cells(2, 2).Value & NomeFile & ".xls", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False, ConflictResolution:=xlLocalSessionChanges ' salvo il file creato con il nome
        Workbooks(NomeFile & ".xls").Close  ' chiudo il file creato
    
        '  invio email
        Set OutMail = OutApp.CreateItem(0)
        
        With OutMail
        .to = ComboBox1  ' A chi la mando
        .CC = ComboBox2  ' CC copia in lettura
        .Subject = NomeFile 'Oggetto della mail
        .Body = TestoEmail  ' testo della mail
        .Attachments.Add (WIn.Cells(2, 2).Value & NomeFile & ".xls")  'da qui prendo l'allegato il percorso ed il nome del file
      
        .Send 'per inviare subito la mail
        '.Display 'per aprire e controllare la mail prima di inviarla manualmente
        End With
        Unload Me
        MsgBox "Mail inviata con successo", vbInformation, "Avviso"
        '  end  email
        
    Set OutMail = Nothing
    Set OutApp = Nothing
    
     ' cancella dati e chiudi
     
    Range(Cells(28, 14), (Cells(17, 1))).Value = ""
    Cells(12, 2).Value = ""
    Cells(11, 2) = Cells(11, 2) + 1 ' incrementa numero di file
    ActiveWorkbook.Save
    Application.Quit
    
    
    End Sub



  • di Vecchio Frac data: 19/01/2015 15:36:06

    In privato ti ho inviato una proposta di modello ma solo ora ho visto questo tuo messaggio.
    Se il tuo file funziona come ti aspetti non tenere in considerazione il mio.





  • di biss73 (utente non iscritto) data: 23/01/2015 00:15:35

    ciao,
    oggi finalmente ho fatto qualche prova, che dire il risultato davvero eccezionale
    grazie ancora per la disponibilità
    Saluti