Aiutamici Forum
Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Scadenze con excel. Opzioni
a10n11
Inviato: Monday, February 12, 2007 10:27:37 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
Salve
nell'editor di VBA copia la seguente macro in ThisWorkbook
che all'apertura del file controlla tutti i fogli della cartella se la data inserita nella cella A1
è minore o uguale alla data odierna. Se se verifica la condizione viene richiamata la macro che invia la mail.



Private Sub Workbook_Open()
x = Date
For Each ws In Worksheets
With ws
If .[a1].Value - x (= 5 Then
Call Inviamail
End If
End With
Next
End Sub

Copia la seguente macro in un modulo dell'editor di VBA Menu Inserisci)Modulo
La macro suppone che nella cella C1 di ogni foglio ci sia l'indirizzo E_mail a cui inviare il messaggio.
Per funzionare bisogna attivare la specifica libreria di Micorsoft Outlook. Menu Strumenti>Riferimenti
mettere il segno di spunta su "Micorosft Office 9.0 object library"
La macro usa Microsoft Outlook come gestore di posta.

Sub Inviamail_Outlook()
Dim OutApp As Object
Dim OutMail As Object
Dim messaggio As String
Dest = Sheets("foglio1").Range("c1").Value

Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)

messaggio = "Buongiorno" & vbNewLine & vbNewLine & _
"Il presente avviso per comunicarle che" & vbNewLine & _
"la sua polizza auto scade tra 2 giorni" & vbNewLine & _
"Cordiali saluti" & vbNewLine & _
"Ti Assicuro Bene S.P.A."

On Error Resume Next
With OutMail
.To = Dest
.CC = ""
.BCC = ""
.Subject = "Scadenza Polizza Auto"
.Body = messaggio
.send
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End Sub

saluti
Andrea

mblu
Inviato: Saturday, February 17, 2007 4:05:47 PM
Rank: AiutAmico

Iscritto dal : 6/28/2005
Posts: 58
Ciao,
non ho ancora testato la macro; sembrerà stupido ma sto trovando difficoltà ad configurare in maniera corretta microsoft office outlook. Sto cercando di trovare qualche info in rete.

Grazie comunque di tutto.
Ciao
Giuseppe
mblu
Inviato: Wednesday, July 25, 2007 1:26:00 PM
Rank: AiutAmico

Iscritto dal : 6/28/2005
Posts: 58
Salve , riprendo a distanza lo stesso argomento create da me a suo tempo.
Utilizzando la macro che colora i TAb dei fogli: mi succede che inserendo la data nella cella a1 come da macro , i TAb si colorano, ma si colora anche il tab del foglio dove non è indicata la data. A me serve che si colori solo il TAB dove è indicata la data. Inoltre se cancello la data dal foglio dove era indicata la data, al riavvio è ancora colorata.
Non capisco il motivo.
Questa la macro che uso:
Private Sub Workbook_Open()
x = Date
For Each ws In Worksheets
With ws
If .[b1].Value - x <= 5 Then
.Tab.ColorIndex = 3
Else
.Tab.ColorIndex = -4142
End If
End With
Next
End Sub


Ciao
Giuseppe
borile500
Inviato: Tuesday, September 01, 2009 8:47:34 PM
Rank: Newbie

Iscritto dal : 9/1/2009
Posts: 1
Salve sono nuovo,
ho un problema simile a quello descritto e non riesco a risolverlo.
Ho un file con 10 fogli nel "foglio 1" in z1000 inserisco data di sistema in z1001 la data di scadenza da me impostata.
Quando la data sopraggiunge vorrei che tutti i fogli venissero eliminati e che resti solo il foglio 1, o quantomeno venisse eliminato tutto il loro contenuto, senza conferma.
PS tutti i fogli sono protetti da password "jolly", ho letto che andrebbe usato il codice Worksheet("Foglio1").unProtect Password:="jolly", per poter poi modificare ogni foglio. Trattandosi di una protezione e scadenza vorrei che la data di scadenza fosse inaccessibile ai più :-D
Avete qualche file d'esempio?
Grazie
ecofive
Inviato: Tuesday, September 01, 2009 8:54:19 PM

Rank: AiutAmico

Iscritto dal : 6/20/2008
Posts: 7,111
Benvenuto nel nostro Forum, Borile500.

Ciao.
a10n11
Inviato: Wednesday, September 02, 2009 10:12:04 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
per ottenere ciò che vuoi devi sfruttare l'evento open del workbook:
queste due macro che seguono servono:
la prima per cancellare tutti i dati dei fogli escluso il foglio1
la seconda per eliminare completamente tutti i foglio escluso il foglio1.
O l'una o l'altra, andrà copiata nel modulo ThisWorkbook nell'editor di VBA.


Private Sub Workbook_Open()
Application.ScreenUpdating = False
With Sheets("foglio1")
If .Cells(1000, 26).Value = .Cells(1001, 26).Value Then
For Each ws In Worksheets
If ws.Name <> "Foglio1" Then
ws.Unprotect password:="jolly"
ws.Cells.Clear
ws.Protect password:="jolly"
End If
Next
End If
End With
Application.ScreenUpdating = True
End Sub

Private Sub Workbook_Open()
Application.ScreenUpdating = False
With Sheets("foglio1")
If .Cells(1000, 26).Value = .Cells(1001, 26).Value Then
For Each ws In Worksheets
If ws.Name <> "Foglio1" Then
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
Next
End If
End With
Application.ScreenUpdating = True
End Sub


NB. se l'intenzione è quella di non far usufruire il file oltre una certa data, queste precauzioni sono facilmente scavalcabili per chi ha un minimo di dimestichezza con l'ambiente VBA.
saluti
Andrea


Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.