Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Invio email con excel in automatico

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

Re: Invio email con excel in automatico

Postdi Anthony47 » 12/06/15 00:05

Credo che tu voglia inserire alcune "condizioni" per l' invio della mail al destinatario della riga.
Questo lo devi fare manipolando la riga con L' If, aggiungendo in quella riga altre condizioni; ti avevo fatto l' esempio di come controllare che rispetto alla data presente in una colonna fossero passati N giorni.
Se invece metti istruzioni che determinano l' Exit For, cioe' l' uscita dal ciclo For i /Next i, e' chiaro che alla prima condizione che si avvera cessa tutto il processo.
Oltre al controllo della data, qual condizione vorresti aggiungere?
Quali operazioni, oltre all' invio mail vorresti fare?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Sponsor
 

Re: Invio email con excel in automatico

Postdi Zagor57 » 12/06/15 20:18

Ciao Anthony47
e da almeno 2 ore che impazzisco a fare prove e quant'altro
cerco di spiegarmi le condizioni che intendo mettere

esempio 1 : Invio email in data odierna

email da inviare ai sig.Colonna (A)----- email inviata al sig.Colonna (B)---- il giornoColonna ( C )

colonna A1= Pippo....... colonna B1= Pippo ...... Colonna c1= 12/06/15-----------------(D1 )= 20gg
colonna A2= Verdi....... colonna B2= Verdi .......Colonna c1= 12/06/15
colonna A3= Bianchi.... colonna B3= Bianchi.... Colonna c1= 12/06/15
colonna A4= Rossi ...... colonna B4= Rossi...... Colonna c1= 12/06/15

Esempio 2: in quli casi deve inviare la nuova email e a chi?

se nella colonna ( A ) si verifica che il sig. Verdi non esiste più, e il nuovo nominativo è divenuto il sig. Pincoppallino oppure se nella colonna ( C ) la data è superiore di giorni come da cella (D1 )

colonna A1= Pippo ....... colonna B1= Pippo ....... Colonna c1= 12/06/15
colonna A2= Pincopallino . colonna B2= Verdi....... Colonna c1= 12/06/15
colonna A3= Bianchi ..... colonna B3= Bianchi .....Colonna c1= 12/06/15
colonna A4= Rossi ....... colonna B4= Rossi ....... Colonna c1= 02/05/15
In questo caso invia la mail al sog Pincopallino perche il sig.Verdi non esiste più e al sig. Rossi perchè l'ultima mail inviata è superiore oltre i 20 gg stabiliti nella cella ( D1 )

Esempio 3: In quali casi non deve inviare la Mail
Quando nella colonna ( A ) nulla è cambiato e nella colonna ( C ) la data e inferiore al numero dei giorni come da colonna (D1)

colonna A1= Pippo ....... colonna B1= Pippo...... Colonna c1= 12/06/15
colonna A2= Verdi ....... colonna B2= Verdi ....... Colonna c1= 12/06/15
colonna A3= Bianchi..... colonna B3= Bianchi..... Colonna c1= 12/06/15
colonna A4= Rossi ...... colonna B4= Rossi ....... Colonna c1= 12/06/15
queste sono le due condizioni che non riesco a mettere insieme
Spero di essere stato abbastanza chioaro
Ciao

E!!!!! A presto
Zagor57

Impegno e costanza
ciao da Salvatore
Avatar utente
Zagor57
Utente Junior
 
Post: 70
Iscritto il: 04/05/15 19:35
Località: Massafra TA

Re: Invio email con excel in automatico

Postdi Anthony47 » 12/06/15 23:41

Il tracciato delineato non consente di fare tutti i ragionamenti del caso; ad esempio in quale colonna e' presente l' indirizzo di posta a cui inviare la mail? Supponiamo che sia in colonna AP.
In questa situazione non riesco a capire che significato ha mettere due nominativi sulla stessa riga...
Comunque da come l'ho capita io si vuole inviare una mail all' indirizzo presente in colonna AP quando:
-la colonna A contiene un valore diverso da colonna B
-oppure rispetto alla data in colonna C sono trascorsi almeno N giorni, dove N e' scritto in D1
La macro, se invia una mail, deve scrivere in colonna C la data odierna e deve replicare in colonna B il nominativo presente in colonna A.

Con questi presupposti, va sostituita la riga
If InStr(1, Cells(i, "AP").Value, "@", vbTextCompare) > 0 Then 'And (Now - Cells(i, "AU").Value) > ("AL12") Then 'Indirizzo presente in cella D
con
Codice: Seleziona tutto
If InStr(1, Cells(I, "AP").Value, "@", vbTextCompare) > 0 And _
  Cells(I, "A").Value <> Cells(I, "B").Value Or _
  Cells(I, "C").Value + Range("D1").Value <= Now Then
    Cells(I, 2) = Cells(I, 1)
    Cells(I, 3) = Int(Now)

Il resto della macro, prima e dopo la modifica da fare, non cambia.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Invio email con excel in automatico

Postdi Zagor57 » 13/06/15 08:27

Ciao Antony47
Intanto se il tuo nome è Antonio Auguri di buon Onomastico

Hai centrato in pieno il mio pensiero, (nei miei tentativi mi ero avvicinato molto alla tua soluzione come puoi notare ), ho sostitito il codice come suggerito ,
come segue parte della macro
Codice: Seleziona tutto
   Set OutApp = CreateObject("Outlook.Application")
    For i = 14 To 100
        If Cells(i, "AP").Value = "" Then Exit For  ' <<< Se la cella Apxx è vuota fine invio email
        '
        'If InStr(1, Cells(i, "AP").Value, "@", vbTextCompare) > 0 And  Cells(i, "AM").Value<> Cells(i, "AT") And (Now - Cells(i, "AU").Value) > AU12 Then
        ' << condizione di invio email e scrittura :se il nome di ( AM ) è diverso da ( AT ) oppure se la data di ( AU ) è superiore di Ngg di ( AU12 )
       If InStr(1, Cells(i, "AP").Value, "@", vbTextCompare) > 0 And _
        Cells(i, "AM").Value <> Cells(i, "AT").Value Or _
        Cells(i, "AU").Value + Range("AU12").Value <= Now Then
        Cells(i, 2) = Cells(i, 1)
        Cells(i, 3) = Int(Now)
            Cells(i, "AT") = Cells(i, "AM").Value '& ("- ") & Cells(i, "AN") '<<< Nome e Cognome del cliente
            Cells(i, "AU") = Date
            BDT = "Caro/a   " & Cells(i, "AM").Value & (",    ") & Cells(i, "AN") & (",   ") & ("Siamo lieti comunicarti che hai raggiunto  ") & (",   ") & Cells(i, "AO") & ("   Punti   ") & (",   ") & ("raggiungendo cosi il premio N°   ") & Cells(i, "AR") & (",  pari ad €uro  ") & Cells(i, "AS") 'compilazione di un testo standard di accompagnamento
            BDT = BDT & Sheets("Hompage").Range("az4") '<<<<<<<Testo in AZ4
            BDT = BDT & vbCrLf & "   " & vbCrLf  ' <<<<<Saluti


però mi da errore di Run Time "13" Tipo non corrispondente
cosa pensi che sia?
Io provo a fare alcune modifiche ma mi da sempre lo stesso errore

Ciao a presto
Zagor57

Impegno e costanza
ciao da Salvatore
Avatar utente
Zagor57
Utente Junior
 
Post: 70
Iscritto il: 04/05/15 19:35
Località: Massafra TA

Re: Invio email con excel in automatico

Postdi Zagor57 » 13/06/15 12:01

P.S ERRORE Mio tutto funziona benissimo
Ultima cosa

perchè dopo che invia la mail mi annulla la tastiera numerica ?

ciao
Zagor57

Impegno e costanza
ciao da Salvatore
Avatar utente
Zagor57
Utente Junior
 
Post: 70
Iscritto il: 04/05/15 19:35
Località: Massafra TA

Re: Invio email con excel in automatico

Postdi Anthony47 » 16/06/15 01:53

La macro non dovrebbe alterare il setting del Pc; comunque elimina le istruzioni
Application.SendKeys "%a"
(se tu hai Outlook2007 o superiore non dovrebbe servire) lasciando la sola
Application.Wait (Now + TimeValue("0:00:04"))

Un'ultima osservazione:
-se in colonna AP puo' esserci o non esserci l' indirizzo del destinatario (come era in origine con la colonna D del file che pubblicasti), allora e' sbagliato terminare il loop di invio email con If Cells(i, "AP").Value = "" Then Exit For perche' questa interrompe il loop al primo nominativo che non ha un indirizzo email inserito; se questo e' il tuo caso dovrai lavorare su un' altra colonna (es quella col nominativo) per attivare "Exit For", cioe' fine del loop.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Invio email con excel in automatico

Postdi Zagor57 » 16/06/15 08:29

Ciao Anthony
Il tuo ragionamento è giusto la colonna AP è quella dell'email,adesso il controllo è diventato If Cells(i, "AM")che è la colonna del nominativo
in effetti non tutti hanno l'indirizzo email, in questo modo non avviene Exit For al primo indirizzo mancante ma al termine dei nominativi,perfetto
Grazie a presto


Ciao
Zagor57

Impegno e costanza
ciao da Salvatore
Avatar utente
Zagor57
Utente Junior
 
Post: 70
Iscritto il: 04/05/15 19:35
Località: Massafra TA

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Invio email con excel in automatico":


Chi c’è in linea

Visitano il forum: Nessuno e 50 ospiti