Risultati da 1 a 11 di 11

Discussione: filtra salva ed invia



  1. #1
    L'avatar di ste75v
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    borgomanero
    Messaggi
    105
    Versione Office
    2013
    Likes ricevuti
    2
    Likes dati
    3

    filtra salva ed invia

    Ciao a tutto il forum , rieccomi qui con i miei problemi relativi alle macro....
    Come possa fare creare una macro che:
    • quando trova il valore "SCADUTA" nella colonna "F" mi filtra tutte le celle con "SCADUTA"
    • una volta filtrato il valore , mi salva il foglio che si viene a creare in PDF
    • poi mi manda una mail in automatico .
    • gli indirizzi(destinatario e per copia conoscenza) , l'oggetto del messaggio ed il testo del messaggio vorrei che siano già dentro nella macro .


    Qualcuno mi potrebbe aiutare???
    GRAZIE

  2. #2
    L'avatar di ste75v
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    borgomanero
    Messaggi
    105
    Versione Office
    2013
    Likes ricevuti
    2
    Likes dati
    3
    nessuno riesca ad aiutarmiiiiiiiiii:183:

  3. #3
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Ciao Ste75v

    Cerca di essere più descrittivo, specifico e conciso nel tuo post.

    In questo modo la tua domanda sarà capita chiaramente e riceverà più facilmente risposte adeguate.
    Ti consiglio di inserire una immagine e/o file allegato di excel e/o immagini BBCode, cosi da rendere tutto più comprensibile e ricordati che una immagine vale più di 1000 parole
    In un progetto un po elaborato come il tuo ti consiglio di fare una domanda alla volta.

    Poi è buona norma indicare il nome della cartella di lavoro, il nome del foglio, le celle o intervalli di riferimento. Esempio potreste scrivere cosi: Mi serve una formula e/o Macro nel Foglio3 nella cella H21 ........che mi restituisca il ................. A21:A1250.. ecc ecc. ecc.

  4. #4
    L'avatar di ste75v
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    borgomanero
    Messaggi
    105
    Versione Office
    2013
    Likes ricevuti
    2
    Likes dati
    3
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    Ciao Ste75v

    Cerca di essere più descrittivo, specifico e conciso nel tuo post.

    In questo modo la tua domanda sarà capita chiaramente e riceverà più facilmente risposte adeguate.
    Ti consiglio di inserire una immagine e/o file allegato di excel e/o immagini BBCode, cosi da rendere tutto più comprensibile e ricordati che una immagine vale più di 1000 parole
    In un progetto un po elaborato come il tuo ti consiglio di fare una domanda alla volta.

    Poi è buona norma indicare il nome della cartella di lavoro, il nome del foglio, le celle o intervalli di riferimento. Esempio potreste scrivere cosi: Mi serve una formula e/o Macro nel Foglio3 nella cella H21 ........che mi restituisca il ................. A21:A1250.. ecc ecc. ecc.
    Seguo il consiglio di Gerardo ed allego il file come esempio . la colonna indicata è la colonna con il titolo in rosso chiamata "EXPIRED INSPECTION" .
    l'intervallo deve andare da AB9 ad AB 2000.
    La macro , dovrebbe verificare che nella colonna da AB9 ad AB2000 sia presente il valore "EXPIRED INSPECTION" , se è presente ,deve filtrare le celle conteneti questo valore , deve salvarmi il foglio filtrato in pdf nel percorso "C:\......" .
    Una volta salvato il file , mi deve mandare automaticamente una mail ;gli indirizzi(destinatario e per copia conoscenza) , l'oggetto del messaggio ed il testo del messaggio vorrei che siano già dentro nella macro.
    se non è presente il valore "EXPIRED INSPECTION" nella colonna AB la macro non deve fare nulla .

    Spero che così sia più chiaro.
    Grazie

  5. #5
    L'avatar di ste75v
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    borgomanero
    Messaggi
    105
    Versione Office
    2013
    Likes ricevuti
    2
    Likes dati
    3
    :250: nessuno riesce a darmi una mano???:250:

  6. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7147
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300
    Ciao Ste,
    prendi con le pinze il mio intervento, sto imparando il vba e voglio provare a scrivere del codice.

    Ho usato questa sub e per le poche prove che ho fatto mi sembra che funzioni:
    Codice: 
    Sub FiltroEStampaDati()
    For cella = 1 To 100
    If Range("Ab" & cella) = "EXPIRED INSPECTION" Then
    Range("A1").AutoFilter Field:=28, Criteria1:="EXPIRED INSPECTION"
    Range("AB6").Select
        ActiveWorkbook.SaveAs Filename:= _
            " C:\users\usersname\desktop:EX REGISTER.pdf", FileFormat:=xlPDF
    Exit For
    End If
    Next
    End Sub
    usermame lo devi sostituire con il tuo nome che hai dato al PC.

  7. #7
    L'avatar di ste75v
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    borgomanero
    Messaggi
    105
    Versione Office
    2013
    Likes ricevuti
    2
    Likes dati
    3
    ciao Ges , ho preso spunto dalla tuia mail , l'ho modificata un po ed ora funziona alla perfezione , solo che mi rimane sempre il problema per l'invio mail in automatico del file PDF che si crea.

    Ecco come ho modificato la macro ( non è farina del mio sacco , ma guardando in internet è quello che sono riuscito a trovare e poi l'ho adattato)


    Sub FiltraIspezioniScaduteESalvaInPDF()


    For cella = 9 To 2000
    If Range("AQ" & cella) = "EXPIRED INSPECTION" Then
    ActiveSheet.Range("$A$8:$IS$1697").AutoFilter Field:=43, Criteria1:="EXPIRED INSPECTION"
    Range("AQ9").Select


    End If


    Next


    For cella = 9 To 2000
    If Range("AQ" & cella) = "EXPIRED INSPECTION" Then


    Dim ws As Worksheet
    Dim strIndirizzo As String
    Dim myFile As Variant
    Dim strFile As String
    On Error GoTo errHandler

    Set ws = ActiveSheet

    'apre la finestra di dialogo per il salvataggio dei file
    'la cartella di default è la stessa della cartella di excel
    strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
    & "_" _
    & Format(Now(), "yyyy-mm-dd\_hh-mm") _
    & ".pdf"
    strFile = ThisWorkbook.Path & "\" & strFile

    myFile = Application.GetSaveAsFilename _
    (InitialFileName:=strFile, _
    FileFilter:="PDF Files (*.pdf), *.pdf", _
    Title:="ispezioni scadute")

    If myFile <> False Then
    ws.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=myFile, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

    MsgBox "Il file PDF è stato salvato."
    End If
    End If

    exitHandler:
    Exit Sub
    errHandler:
    MsgBox "Non ho potuto salvare il file PDF"
    Resume exitHandler
    Next
    End Sub

  8. #8
    L'avatar di ste75v
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    borgomanero
    Messaggi
    105
    Versione Office
    2013
    Likes ricevuti
    2
    Likes dati
    3
    allora , lavorandoci ancora un po su , modificando ancora la macro ora mi invia la mail , ma non riesco a fargli allegare il file che mi ha appena salvato la macro....

    help me please:251:

    ecco come ho modificato la macro:
    Sub FiltraIspezioniScaduteESalvaInPDF()


    For cella = 9 To 2000
    If Range("AQ" & cella) = "EXPIRED INSPECTION" Then
    ActiveSheet.Range("$A$8:$IS$1697").AutoFilter Field:=43, Criteria1:="EXPIRED INSPECTION"
    Range("AQ9").Select


    End If


    Next


    For cella = 9 To 2000
    If Range("AQ" & cella) = "EXPIRED INSPECTION" Then


    Dim ws As Worksheet
    Dim strIndirizzo As String
    Dim myFile As Variant
    Dim strFile As String
    Dim newMail As Object ' aggiunto per invio mail
    Dim nomefiledaallegare As Variant 'aggiunto per invio mail
    On Error GoTo errHandler

    Set ws = ActiveSheet

    'apre la finestra di dialogo per il salvataggio dei file
    'la cartella di default è la stessa della cartella di excel
    strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
    & "_" _
    & Format(Now(), "yyyy-mm-dd\_hh-mm") _
    & ".pdf"
    strFile = ThisWorkbook.Path & "\" & strFile

    myFile = Application.GetSaveAsFilename _
    (InitialFileName:=strFile, _
    FileFilter:="PDF Files (*.pdf), *.pdf", _
    Title:="ispezioni scadute")

    If myFile <> False Then
    ws.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=myFile, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

    MsgBox "Il file PDF è stato salvato."


    End If
    End If

    Set newMail = CreateObject("Outlook.Application").CreateItem(oMailItem)
    With newMail
    .To = Worksheets("Foglio2").Range("A2")
    .Subject = "test"
    .Body = Worksheets("Foglio2").Range("E2")
    ' .CC = indirizzo in copia per conoscenza, se mi serve. qui è commentato
    Attachment = strFile
    .Send


    End With




    exitHandler:
    Exit Sub
    errHandler:
    MsgBox "Non ho potuto salvare il file PDF"
    Resume exitHandler




    On Error Resume Next




    Next


    End Sub

  9. #9
    L'avatar di ste75v
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    borgomanero
    Messaggi
    105
    Versione Office
    2013
    Likes ricevuti
    2
    Likes dati
    3
    se a qualcuno può interessare , ora sono riuscito a risolvere tutti i problemi.
    Ora la macro filtra , salva in pdf ed invia il file appena creato.
    dopo aver inviato la mail , rimuove il filtro.

    Quindi posso considerare il post come risolto.
    Sotto la macro creata
    :285:

    Sub FiltraIspezioniScaduteESalvaInPDF()


    For cella = 9 To 2000
    If Range("AQ" & cella) = "EXPIRED INSPECTION" Then
    ActiveSheet.Range("$A$8:$IS$1697").AutoFilter Field:=43, Criteria1:="EXPIRED INSPECTION"
    Range("AQ9").Select


    End If


    Next


    For cella = 9 To 2000
    If Range("AQ" & cella) = "EXPIRED INSPECTION" Then


    Dim ws As Worksheet
    Dim strIndirizzo As String
    Dim myFile As Variant
    Dim strFile As String
    Dim wb As Workbook ' aggiunto per togliere filtro



    Dim newMail As Object ' aggiunto per invio mail
    On Error GoTo errHandler

    Set ws = ActiveSheet

    'apre la finestra di dialogo per il salvataggio dei file
    'la cartella di default è la stessa della cartella di excel
    strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
    & "_" _
    & Format(Now(), "yyyy-mm-dd\_hh-mm") _
    & ".pdf"
    strFile = ThisWorkbook.Path & "\" & strFile

    myFile = Application.GetSaveAsFilename _
    (InitialFileName:=strFile, _
    FileFilter:="PDF Files (*.pdf), *.pdf", _
    Title:="ispezioni scadute")

    If myFile <> False Then
    ws.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=myFile, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

    MsgBox "Il file PDF è stato salvato."


    End If


    Set newMail = CreateObject("Outlook.Application").CreateItem(oMailItem)
    With newMail
    .To = Worksheets("Foglio2").Range("A2")
    .Subject = Worksheets("Foglio2").Range("D2")
    .Body = Worksheets("Foglio2").Range("E2")
    ' .CC = indirizzo in copia per conoscenza, se mi serve. qui è commentato
    .Attachments.Add myFile
    .Send


    End With


    Set wb = ThisWorkbook
    Set ws = wb.ActiveSheet

    'azzera le condizioni del filtro automatico
    'e mostra tutti i dati
    If ws.AutoFilterMode Then
    If ws.FilterMode Then
    ws.ShowAllData
    End If
    End If

    Set ws = Nothing
    Set wb = Nothing

    End If

    exitHandler:
    Exit Sub
    errHandler:
    MsgBox "Non ho potuto salvare il file PDF"
    Resume exitHandler




    On Error Resume Next


    Next


    End Sub

  10. #10
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Ciao Ste Per sicurezza
    quando pubblichi un codice VBA è meglio metterlo tra TAG #
    cosi:
    Codice: 
    Sub FiltraIspezioniScaduteESalvaInPDF()
    
    
    For cella = 9 To 2000
    If Range("AQ" & cella) = "EXPIRED INSPECTION" Then
    ActiveSheet.Range("$A$8:$IS$1697").AutoFilter Field:=43, Criteria1:="EXPIRED INSPECTION"
    Range("AQ9").Select
    
    
    End If
    
    
    Next
    
    
    For cella = 9 To 2000
    If Range("AQ" & cella) = "EXPIRED INSPECTION" Then
    
    
    Dim ws As Worksheet
    Dim strIndirizzo As String
    Dim myFile As Variant
    Dim strFile As String
    Dim wb As Workbook ' aggiunto per togliere filtro
    
    
    
    Dim newMail As Object ' aggiunto per invio mail
    On Error GoTo errHandler
    
    Set ws = ActiveSheet
    
    'apre la finestra di dialogo per il salvataggio dei file
    'la cartella di default è la stessa della cartella di excel
    strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
    & "_" _
    & Format(Now(), "yyyy-mm-dd\_hh-mm") _
    & ".pdf"
    strFile = ThisWorkbook.Path & "\" & strFile
    
    myFile = Application.GetSaveAsFilename _
    (InitialFileName:=strFile, _
    FileFilter:="PDF Files (*.pdf), *.pdf", _
    Title:="ispezioni scadute")
    
    If myFile <> False Then
    ws.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=myFile, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
    
    MsgBox "Il file PDF è stato salvato."
    
    
    End If
    
    
    Set newMail = CreateObject("Outlook.Application").CreateItem(oMailItem)
    With newMail
    .To = Worksheets("Foglio2").Range("A2")
    .Subject = Worksheets("Foglio2").Range("D2")
    .Body = Worksheets("Foglio2").Range("E2")
    ' .CC = indirizzo in copia per conoscenza, se mi serve. qui è commentato
    .Attachments.Add myFile
    .Send
    
    
    End With
    
    
    Set wb = ThisWorkbook
    Set ws = wb.ActiveSheet
    
    'azzera le condizioni del filtro automatico
    'e mostra tutti i dati
    If ws.AutoFilterMode Then
    If ws.FilterMode Then
    ws.ShowAllData
    End If
    End If
    
    Set ws = Nothing
    Set wb = Nothing
    
    End If
    
    exitHandler:
    Exit Sub
    errHandler:
    MsgBox "Non ho potuto salvare il file PDF"
    Resume exitHandler
    
    
    
    
    On Error Resume Next
    
    
    Next
    
    
    End Sub

  11. #11
    L'avatar di ste75v
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    borgomanero
    Messaggi
    105
    Versione Office
    2013
    Likes ricevuti
    2
    Likes dati
    3
    Ok Gerardo ,non lo sapevo.
    Chiedo scusa

Discussioni Simili

  1. [Risolto] Macro filtra per testo
    Di simone90 nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 07/12/16, 02:14
  2. Userform che filtra valore in più colonne
    Di nessi nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 22/07/16, 22:55
  3. crea cartella + salva nomefile.xlsm + salva nomefile.pdf
    Di Tequila nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 20/05/16, 21:46
  4. Invia Email
    Di nick0573 nel forum Domande su Excel VBA e MACRO
    Risposte: 21
    Ultimo Messaggio: 20/04/16, 17:35
  5. Macro Filtra Dati Colonne
    Di ghost69 nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 22/01/16, 08:11

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •