Ok grazie lo stesso Anthony, purtroppo devo abbondonare questo progetto perchè non ne sono capace.
Ciao e buona giornata.
Moderatori: Anthony47, Flash30005
Anthony47 ha scritto::?:
L' alternativa e' che tu valuti se le mail sono da spedire e se SI premi il pulsante.
Cosa mi sfugge?
Public Riga As Integer
Sub Scadenza()
UE = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For RR = 2 To UR
If Range("E" & RR).Value = 10 Or Range("E" & RR).Value = 3 Or Range("E" & RR).Value = 1 Then
Riga = RR
Call Ivioemail
End If
Next RR
End Sub
Private Sub Workbook_Open()
Call Scadenza
End Sub
Flash30005 ha scritto:Ora devi solo dire come vorresti far attivare la macro "Scadenza", all'avvio del file?
allora chiamerai questa macro in
- Codice: Seleziona tutto
Private Sub Workbook_Open()
Call Scadenza
End Sub
(alla fine della procedura potrai anche chiudere il file)
Ciao
Anthony47 ha scritto:Flash, ma che succede se l' utente apre il file due o piu' volte?
Io mi sono irrigidito sul fatto che e' l' utente che deve decidere se le mail vanno inviate o meno, perche' solo lui sa quale e' la situazione; la macro da' una mano a eseguire, ma non conosce tutte le situazioni.
Public Riga As Integer
Private Sub Workbook_Open()
Call Scadenza
End Sub
Sub Scadenza()
UE = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For RR = 2 To UR
If Range("E" & RR).Value = 10 Or Range("E" & RR).Value = 3 Or Range("E" & RR).Value = 1 Then
Riga = RR
Call Ivioemail
End If
Next RR
End Sub
Sub Invioemail()
Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim EmailAddr2 As String
Dim Subj As String
Dim BodyText As String
UE = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
' (a)
Set OutApp = CreateObject("Outlook.Application")
'For IE = 2 To UE '<<<< spostare qui dopo aver settato OutApp
''compilazione di un testo standard di accompagnamento
BDT = "" '<<<<<
BDT = BDT & vbCrLf & "Avviso di scadenza pratica, mancano giorni: " & Range("F" & IE).Value
BDT = BDT & vbCrLf & "Cordiali saluti" & vbCrLf
BDT = BDT & "Per conto di Pippo"
'' (b)
Nominat = Sheets("Foglio1").Range("B1").Value
'OutFile = Range("E" & IE).Value
EmailAddr = Range("G" & IE).Value '<<<MODIFICATA
If EmailAddr = "" Then GoTo NoMail
EmailAddr2 = Range("B" & IE).Value
Subj = Range("C" & IE).Value
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = EmailAddr
.CC = EmailAddr2
.BCC = ""
.Subject = Subj
.Body = BDT
.Display 'or use .send
'.SendKeys ("%(i)")
'.Attachments.Add OutFile
End With
Application.Wait (Now + TimeValue("0:00:07")) '<<< spostare qui
Application.SendKeys "%i" '<<< spostare qui
Application.Wait (Now + TimeValue("0:00:07")) '<<< spostare qui
' (c)
Set OutMail = Nothing
IE = Riga
NoMail:
'Next IE '<<< spostare qui
' (d)
Set OutApp = Nothing
End Sub
Public Riga As Integer
Sub Scadenza()
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For RR = 2 To UR
If Range("K" & RR).Value = 0 Then
If Range("E" & RR).Value = 10 Or Range("E" & RR).Value = 3 Or Range("E" & RR).Value = 1 Then
Range("K" & RR).Value = 1
Riga = RR
Call Invioemail
Else: Range("K" & RR).Value = 0
End If
End If
Next RR
End Sub
Sub Invioemail()
Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim EmailAddr2 As String
Dim Subj As String
Dim BodyText As String
' (a)
Set OutApp = CreateObject("Outlook.Application")
IE = Riga
''compilazione di un testo standard di accompagnamento
BDT = "" '<<<<<
BDT = BDT & vbCrLf & "Avviso di scadenza pratica, mancano giorni: " & Range("F" & IE).Value
BDT = BDT & vbCrLf & "Cordiali saluti" & vbCrLf
BDT = BDT & "Per conto di Pippo"
'' (b)
Nominat = Sheets("Foglio1").Range("b1").Value
'OutFile = Range("e" & IE).Value
EmailAddr = Range("G" & IE).Value
If EmailAddr = "" Then GoTo NoMail
EmailAddr2 = Range("b" & IE).Value
Subj = Range("c" & IE).Value
'
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = EmailAddr
.CC = EmailAddr2
.BCC = ""
.Subject = Subj
.Body = BDT
.Display 'or use .send
'.SendKeys ("%(i)")
'.Attachments.Add OutFile
End With
Application.Wait (Now + TimeValue("0:00:07"))
Application.SendKeys "%i"
Application.Wait (Now + TimeValue("0:00:07"))
' (c)
Set OutMail = Nothing
NoMail:
' (d)
Set OutApp = Nothing
End Sub
Private Sub Workbook_Open()
Call Scadenza
End Sub
If Range("E" & RR).Value = 10 Or Range("E" & RR).Value = 3 Or Range("E" & RR).Value = 1 Then
Flash30005 ha scritto:Ridurre a icona si può fare con una riga di codice ma... risolviamo un problema alla volta.
ahidai ha scritto: ho risolto a metà nel senso che quando si avvia il file una volta fatto il check dei giorni si avvia Outlook 2007 e poi si chiude, aspetto circa 5-10 minuti ma l'email non parte, parte solo quando riapro Outlook 2007 manualmente e la trovo che sta nella posta di uscita di Outlook 2007.
'...
Body = BDT
.Display 'or use .send
'.SendKeys ("%(i)")
'...
.send
.sendKeys("%(i)")
Flash30005 ha scritto:Nella parte finale dell'email ci sono righe commentate
- Codice: Seleziona tutto
'...
Body = BDT
.Display 'or use .send
'.SendKeys ("%(i)")
'...
dai commenti ti renderai conto che display va sostituito con
- Codice: Seleziona tutto
.send
.sendKeys("%(i)")
prova perché io non ho Ms Outlook ma chi ha usato questo codice conferma l'invio
Ciao
.Display
.send
End With
Flash30005 ha scritto:Ho appunti per diversi invii email (di programmi di posta che non ho)
prova così
- Codice: Seleziona tutto
.Display
.send
End With
e fai sapere
ciao
ahidai ha scritto: ho risolto a metà nel senso che quando si avvia il file una volta fatto il check dei giorni si avvia Outlook 2007 e poi si chiude, aspetto circa 5-10 minuti ma l'email non parte, parte solo quando riapro Outlook 2007 manualmente e la trovo che sta nella posta di uscita di Outlook 2007.
.Display '**** NON .Send
'.SendKeys ("%(i)")
'.Attachments.Add OutFile
End With
Application.Wait (Now + TimeValue("0:00:07"))
Application.SendKeys "%i" '*** QUI, non subito dopo .Display
Application.Wait (Now + TimeValue("0:00:07"))
'.Display 'or use .send
.send
.SendKeys ("%(ì)")
'.Attachments.Add OutFile
End With
Application.Wait (Now + TimeValue("0:00:07"))
Application.SendKeys "%ì"
Application.Wait (Now + TimeValue("0:00:07"))
.SendKeys ("%(ì)")
'.Display 'or use .send
.send
.SendKeys ("%(ì)")
'.Attachments.Add OutFile
End With
Application.Wait (Now + TimeValue("0:00:07"))
Application.SendKeys "%ì"
Application.Wait (Now + TimeValue("0:00:07"))
.SendKeys ("%(ì)")
.Display '**** NON .Send
'.SendKeys ("%(i)") '<<<<< le righe qui sono commentate mentre tu le hai attive
'.Attachments.Add OutFile
End With
Application.Wait (Now + TimeValue("0:00:07"))
Application.SendKeys "%i" '*** QUI, non subito dopo .Display
Application.Wait (Now + TimeValue("0:00:07"))
].Display '**** NON .Send
'.SendKeys ("%(i)") '<<<<< le righe qui sono commentate mentre tu le hai attive
'.Attachments.Add OutFile
End With
Application.Wait (Now + TimeValue("0:00:07"))
Application.SendKeys "%s" '<<<< variando a "s"
Application.Wait (Now + TimeValue("0:00:07"))
'.Display 'or use .send
.Send
'.SendKeys ("%(i)")
'.Attachments.Add OutFile
End With
Application.Wait (Now + TimeValue("0:00:07"))
Application.SendKeys "%i" '*** QUI, non subito dopo .Display
Application.Wait (Now + TimeValue("0:00:07"))
.Display 'or use .send
'.SendKeys ("%(i)")
'.Attachments.Add OutFile
End With
Application.Wait (Now + TimeValue("0:00:07"))
Application.SendKeys "%i" '*** QUI, non subito dopo .Display
Application.Wait (Now + TimeValue("0:00:07"))
Torna a Applicazioni Office Windows
Macro per aprire file salvato su sharepoint Onedrive Autore: marcopont |
Forum: Applicazioni Office Windows Risposte: 2 |
Come impostare il formato data predefinito in excel? Autore: wallace&gromit |
Forum: Applicazioni Office Windows Risposte: 5 |
Come interrompere macro sndPlaySound Autore: systemcrack |
Forum: Applicazioni Office Windows Risposte: 2 |
Visitano il forum: Nessuno e 21 ospiti