Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Macro per invio email all'avvio della cartella di lavoro

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

Macro per invio email all'avvio della cartella di lavoro

Postdi fastbike73 » 31/01/15 11:59

Buongiorno a tutto il forum,
dovrei risolvere questo ultimo, si spera, problemino prima di mettere in linea il mio bell'archivio...
Il problema è il seguente: all'avvio del file per la registrazione delle cartelle esattoriali gira una macro
che legge nel foglio5 (riepilogo) se ci sono delle righe che hanno in colonna Z la parola "Scaduta". In caso
affermativo prende alcuni "campi" del record in questione e li mette come corpo della email.
Io credo di aver identificato in questo il problema... nella fattispecie, dovendo mettere in rete il file,
lo devo ripulire di tutti i dati inseriti nei vari test effettuati. Appena lo ripulisco e provo a riaprirlo parte
la macro suddetta e impegna sia excel che outlook senza poter dare la possibilità di entrare nel foglio e fermarla...
Quello che, credo, occorra è un comando che dica "se non trovi niente nel foglio5 (riepilogo) non richiamare outlook
e procedi con l'apertura della userform per l'inserimento e la gestione dei dati....
Questo il problema....
Adesso quale parte di codice devo postare affinchè possiate darmi una mano... tutto il file? oppure basta il codice che
fa partire l'email?...
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Sponsor
 

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi ricky53 » 31/01/15 15:40

Sicuramente serve il codice che invia le e-mail
Potrebbere essere utile avere anche il codice che viene eseguito all'apertura del tuo file
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi Anthony47 » 01/02/15 19:47

Perdona, ma se non sai quale e' il codice che provoca quel problema allora secondo me stai mettendo in giro una bomba a orologeria...
Se hai bisogno di fare qualche debug, potresti provare ad aprire il file tenendo premuto il tasto "Maiuscolo"; questo dovrebbe disabilitare l' esecuzione delle macro di avvio.

Segui anche i suggerimenti di Ricky, sopra.

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: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi fastbike73 » 19/02/15 13:36

ricky53 ha scritto:Sicuramente serve il codice che invia le e-mail
Potrebbere essere utile avere anche il codice che viene eseguito all'apertura del tuo file


Ricky, finalmente posso riprendere questo lavoro e quindi sono qui a chiederti nuovamente aiuto...
Ti invio il link al file così lo controlli e mi dici qual'è il problema... do' una piccola rinfrescata,
se cancello tutti i record che ho nei fogli del file e chiudo salvando, alla riapertura, probabilmente,
la macro che dovrebbe controllare se ci sono scadenze prossime inizia a girare e non la finisce più bloccando
l'apertura della form e quindi l'utilizzo del file. Se fosse possibile vorrei che la macro cercasse se ci sono dati
nel foglio "riepilogo". Se li trova controlla le scadenze e se sono prossime richiama outlook per l'invio della mail, se
non trova scadenze prossime va oltre e apre la form per la gestione dei record, se non trova niente apre la form
per l'inserimento dei record... Queste dovrebbero essere le tre possibilità...
Spero di essere stato chiaro nella spiegazione, diversamente sono qui...

https://www.dropbox.com/s/kx5vzntfjmprlff/Cartelle1.xlsm?dl=0
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi ricky53 » 19/02/15 17:10

Ciao,
premesso che i quesiti che vengono inseriti sono aperti a tutti gli utenti (Anthony ti ha scritto ... hai letto il suo intervento?) ...


Al momento non posso scaricare il file ... provo questa sera.

Se allegavi il codice come ti avevo chiesto ... lo avrei guardato adesso, quindi, a questa sera.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi fastbike73 » 19/02/15 17:34

ricky53 ha scritto:Ciao,
premesso che i quesiti che vengono inseriti sono aperti a tutti gli utenti (Anthony ti ha scritto ... hai letto il suo intervento?) ...


Al momento non posso scaricare il file ... provo questa sera.

Se allegavi il codice come ti avevo chiesto ... lo avrei guardato adesso, quindi, a questa sera.


Chiedo venia, non volevo escludere alcuno.
Ho pensato di linkare il file per evitare di sbagliare a inviare un codice piuttosto che un altro. Per il quando non ti
preoccupare in quanto in maniere del tutto "barbara" ho messo nella rete aziendale una versione con un paio di record
già inseriti che fungono da esempio per gli operatori che dovranno provvedere a popolare il database. E' una forzatura, ma
mi avevano chiesto di consegnare il lavoro....
Ringrazio sempre tutti coloro i quali, oltre te, vogliano dare il loro spunto, riflessione, miglioramento al lavoro.
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi ricky53 » 19/02/15 17:47

Ciao,
O.K.

Ho capito che va controllato il caso in cui l'archivio dati è vuoto e la macro "GIRA", "GIRA" e ... al momento hai messo una toppa.

A più tardi.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi ricky53 » 20/02/15 00:43

Ciao,
nella macro "Tester"
prima della chiamata a " Mail_Selection_Range_Outlook_Body"
occorre aggiungere un controllo sulla presenza di dati oltre la riga "2" altrimenti si deve uscire dalla sub

Ecco il codice modificato
Codice: Seleziona tutto
' ....................................................................... INIZIO AGGIUNTE
    If LastRow(SH, SH.Columns("A")) = 2 Then
        MsgBox "Non esistono dati per la condizioni richieste" ' <<======= scrivi il messaggio che vuoi oppure togli questa istruzione
        Exit Sub
    End If
' ....................................................................... FINE AGGIUNTE
    Call Mail_Selection_Range_Outlook_Body(Rng2, RngPdf)


Prova e ... sono QUI
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi fastbike73 » 20/02/15 09:21

ricky53 ha scritto:Ciao,
nella macro "Tester"
prima della chiamata a " Mail_Selection_Range_Outlook_Body"
occorre aggiungere un controllo sulla presenza di dati oltre la riga "2" altrimenti si deve uscire dalla sub
....
Prova e ... sono QUI

Che dire.... sei GRANDE!!!! Grazie Ricky!!!
;) ;) ;) ;) ;)
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi ricky53 » 20/02/15 13:09

Ciao,
grazie per il "GRANDE".

Posso fare una domanda: cosa hai imparato da come si è svolto questo quesito?
Secondo me almeno due cose ....
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi fastbike73 » 20/02/15 14:19

ricky53 ha scritto:...
Posso fare una domanda: cosa hai imparato da come si è svolto questo quesito?
Secondo me almeno due cose ....


Ricky da te e dagli altri utenti del forum si può solo imparare... è per questo che
io e altri come me si rivolgono a voi. Per le vostre competenze e per la vostra professionalità
nel risolvere i nostri problemi.
P.s. ho un altro problema...
Mentre spiegavo agli operatori il funzionamento del file mi è capitato la seguente:
dopo aver inserito dei record e aver aggiornato il foglio di riepilogo tramite l'apposito
pulsante, alla riapertura del file mi è apparso lo stesso il messaggio "Non esistono dati per la condizione richiesta".
Insospettito, in teoria non sarebbe odvuto spuntare il messaggio, sono andato a controllare il foglio "Riepilogo" e ho potuto
constatare che c'erano delle colonne nascoste e che si era applicato un filtro automatico. Questa situazione nel foglio riepilogo inibisce l'eventuale invio di e-mail. Come posso risolverlo? Ti posto un 'immagine in quanto il file è sempre lo stesso.. solo che adesso contiene i dati sensibili...

Immagine
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi ricky53 » 20/02/15 14:25

Ciao,
con l'immagine si capisce solo che non vi sono dati per cui debba essere inviata una e-mail ... devi dirci quali filtri erano stati impostati e su quali colonne.

Un consiglio: nel tuo codice prima di impostare un filtro "resetta" tutti i filtri (che potrebbero essere stati impostati prima) e poi applica quelli che ti occorrono.

in questo modo eviti che l'utente filtri per qualche sua esigenza e poi mandando in esecuzione il tuo codice vengano fuori delle situazioni errate
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi ricky53 » 20/02/15 14:38

Ciao,
leggi quanto ti ho scritto prima!

Adesso aggiungo una modifica al codice:
Nella macro "Tester" sostituisci
Codice: Seleziona tutto
    With SH
        iLastRow = LastRow(SH, .Columns("A:AA"))                   'identifico l'ultima riga che contenga valori nel rang A:AA
        Set Rng = .Range("A2:AA" & iLastRow)
        Set Rng2 = .Range("A2:M" & iLastRow)                      'identifico il secondo range per togliere dal corpo della mail le colonne che non servono
    End With



con
Codice: Seleziona tutto
    With SH
        Range("A2").AutoFilter Field:=1, Criteria1:="<>" ' <<====== Aggiunta
        ActiveSheet.ShowAllData'                                  ' <<====== Aggiunta
       
        iLastRow = LastRow(SH, .Columns("A:AA"))                   'identifico l'ultima riga che contenga valori nel rang A:AA
        Set Rng = .Range("A2:AA" & iLastRow)
        Set Rng2 = .Range("A2:M" & iLastRow)                      'identifico il secondo range per togliere dal corpo della mail le colonne che non servono
    End With


che tiene conto proprio di eventuali filtri impostati.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi fastbike73 » 20/02/15 15:16

Ricky, ho inserito la modifica che mi hai scritto ma il problema rimane. Per scrupolo ti invio l'immagine dopo la modifica .... Nella prima immagini i dati sono inseriti è il filtro automatico che si è inserito che non li fa vedere ma se guardi attentamente vedi che accanto al simbolo della funzione c'è un numero, il numero del documento inserito che il filtro sta nascondendo....
Riguardo al vba, l'unico filtro è quello che hai identificato tu, che toglie le colonne che non servono rispetto al body della mail. A parte questo impostato tramite vba per il suo scopo, gli operatori non avendo necessità di accedere ai fogli "dietro" non possono applicare alcun filtro...

Immagine

anzi.. anche nel foglio1 adesso si applica un filtro automaticamente..

Immagine
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi ricky53 » 20/02/15 15:54

Ciao,
NON ti seguo ... nelle immagini non noto nulla tranne un "3" ... dovrebbe essere la cella in cui sei posizionato ed hai tagliato la "A".

Ho fatto varie prove sul tuo file e non ho avuto problemi.

Occorre di nuovo il tuo file: invialo quando hai il problema, salva e non modificare altro.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi fastbike73 » 20/02/15 17:09

ricky53 ha scritto:Ciao,
NON ti seguo ... .


Prima di ogni cosa ti ringrazio per la pazienza!!

Adesso ti invio il file con il problema in corso... appena lo apri vai subito nel foglio 1 , troverai il filtro automatico (che è da togliere), poi nel foglio riepilogo e troverai sia il filtro che le colonne nascoste... questo mi sono accorto avviene sia con dati che senza dati... infatti se provi ad inserire dei dati e dopo aver aggiornato salvi ed esci, quando rientri c'è la stessa situazione di filtro automatico e colonne nascoste.
Grazie sempre....!!

https://www.dropbox.com/s/kx5vzntfjmprlff/Cartelle1.xlsm?dl=0
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi ricky53 » 20/02/15 17:24

Ciao,
Attenzione il file che hai inviato è VUOTO.

Problema capito e risolto (mancava un "." in una istruzione che ti avevo scritto ... ecco il nuovo codice al quale ho fatto le modifiche per risolvere anche un altro problema: quello dei filtri.
Codice: Seleziona tutto
Public Sub Tester()
    Dim WB As Workbook
    Dim SH As Worksheet
    Dim Rng As Range, Rng2 As Range, RngPdf As Range
    Dim rCell As Range
    Dim iLastRow As Long

   Set WB = Workbooks("Cartelle1.xlsm")                            '<<===== Modifica
   Set SH = WB.Sheets("Riepilogo")                                   '<<===== Modifica
    With SH
        .Range("A2").AutoFilter Field:=1, Criteria1:="<>"
        SH.AutoFilterMode = False
       
        iLastRow = LastRow(SH, .Columns("A:AA"))                   'identifico l'ultima riga che contenga valori nel rang A:AA
        Set Rng = .Range("A2:AA" & iLastRow)
        Set Rng2 = .Range("A2:M" & iLastRow)                      'identifico il secondo range per togliere dal corpo della mail le colonne che non servono
    End With

    With Rng
        .AutoFilter Field:=26, Criteria1:="IN SCADENZA"
        .AutoFilter Field:=27, Criteria1:="<>Inviato"           'filtro in base al criterio "In scadenza"
        SH.Range("B:B,D:F,J:L,O:W,Y:AA").EntireColumn.Hidden = True
        Set RngPdf = Rng.Columns("N:N").SpecialCells(xlCellTypeVisible)
        myOffset = 14
    End With
   
    If LastRow(SH, SH.Columns("A")) = 2 Then
        MsgBox "Non esistono dati per le condizioni richieste" ' <<======= scrivi il messaggio che vuoi oppure togli questa istruzione
        GoTo Fine:
    End If

    Call Mail_Selection_Range_Outlook_Body(Rng2, RngPdf)

Fine:
    Rng.EntireColumn.Hidden = False
    SH.AutoFilterMode = False
End Sub


Non avendo i dati non ho potuto testare il caso che hai esposto tu.

Prova e ... sono QUI.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi fastbike73 » 20/02/15 18:13

'Errore di compilazione: etichetta non definita.'
Il debug mi porta a:

....
GoTo Fine
....

Chiuso il debug mi sono accorto che i fogli non hanno più il filtro automatico e le colonne nascoste.. quindi se si risolve
quello dovrei essere a posto....
Ancora l'ultimo sforzo Ricky... thank's so much..
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi ricky53 » 20/02/15 21:26

Ciao,
vedo che non hai copiato INTERAMENTE il mio codice dal forum ma lo hai riscritto o copiato in parte!!!!
Eh, Eh !!!

Controlla bene il mio codicei e ... troverai l'etichetta Fine !!!

Tieni duro che ne usciamo.

DOMANDA: perchè NON ti piace avere un foglio con il filtro impostato ???
Io lo adoro e lo imposto sempre !!!
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro per invio email all'avvio della cartella di lavoro

Postdi Flash30005 » 21/02/15 00:13

Leggi quanto scritto da Ricky

Quando vedi dei codice di macro all'interno di un box (fondo bianco) evita di copiare le righe ma premi il comando "Seleziona Tutto" posto sulla testata del box stesso
una volta selezionato usi il Copia
In questa maniera non rischi di copiare solo parti di macro

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Macro per invio email all'avvio della cartella di lavoro":


Chi c’è in linea

Visitano il forum: Marius44 e 11 ospiti