Risultati da 1 a 9 di 9

Discussione: Colorare Celle in base alla risposta della Macro



  1. #1
    L'avatar di step_90
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    roma
    Messaggi
    5
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Colorare Celle in base alla risposta della Macro

    Buongiorno a tutti,
    ho un foglio Excel dove sono inseriti tutti i donatori AVIS del mio paese.

    Nella colonna (es. F) vengo avvisato con una scritta "CHIAMARE", vicino ad ogni donatore, quando sono passati 3 mesi per gli uomini e 6 per le donne, il che vuol dire che possono di nuovo donare.

    Con un bottone al quale è associata una macro, che legge nella colonna (es. F) se c'è scritto "CHIAMARE", invia una mail ai donatori che possono ritornare a donare.

    La mia domanda è, quando attivo la macro posso evidenziare la cella vicino ogni donatore con un colore oppure scrivere SI, in modo che so a chi ho inviato la mail e a chi no.

    Grazie
    Stefano

  2. #2

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6747
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: Colorare Celle in base alla risposta della Macro

    Se alleghi il tuo file di esempio con la macro sarà più facile rispondere; la cosa è sicuramente fattibile.

    Alfredo

  3. #3
    L'avatar di step_90
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    roma
    Messaggi
    5
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Colorare Celle in base alla risposta della Macro

    Giustamente :)
    appena torno a casa allego sia il codice che l'esempio!

    Grazie

  4. #4
    L'avatar di step_90
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    roma
    Messaggi
    5
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Colorare Celle in base alla risposta della Macro

    Allora eccomi qua....
    Questa è la macro, il primo codice allegato è il ciclo che mi controlla a chi devo inviare la mai

    Codice: 
    
    Public Sub LanciaMailconCondizione()
     
     
    'Identifico l'ultima riga del foglio Sheet1 che contiene un valore
    Last_Row = Sheet1.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    
    'Identifica la colonna con intestazione 'CONTROLLO'
    Col_CONTROLLO = Sheet1.Cells.Find("CONTROLLO", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    
    'imposto un ciclo for-next per individuare le mail da inviare
    For i = 2 To Last_Row 'per la variabile "i" che va da 2 all'ultima cella che contiene un valore
    
    'se il valore della cella con riga "i" e colonna "CONTROLLO" è "INVIARE MAIL" (condizione TRUE all'interno della formula nella colonna "CONTROLLO"
    If Cells(i, Col_CONTROLLO) = "INVIARE MAIL" Then ' Allora
       
       'individuo la riga con controllo maggiore di zero e popolo la variabile
       'con il numero della riga da passare alla macro "InviaMail_con_Condizione(DONATORE as Integer)"
       DONATORE = i
       InviaMail_con_Condizione (i)
    
    End If
    
    Next
    
    End Sub
    Questa invece è la macro che invia la mail dopo il controllo, per ora ho lasciato con l'impostazione ".display" in modo da controllare quello che sto inviando se tutto va bene, dopo invierà tutto senza controllare con ".send"


    Codice: 
    
    Public Sub InviaMail_con_Condizione(DONATORE As Integer)
     
     
        Dim OutApp As Object
        Dim OutMail As Object
        Dim FraseFinale As String
       
        Dim Nome As String
        Dim Destinatario_TO As String
        Dim Oggetto As String
        Dim Testo As String
       
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
       
        Dim rngFormula As Range
        Set rngFormula = Application.ActiveCell
       
        'la variabile "DONATORE" è valorizzata al lancio della macro "LanciaMailconCondizione"
       
        Nome = Sheet1.Cells(DONATORE, 1)             '(DONATORE,colonna) che contiene il nome del destinatario
        Destinatario_TO = Sheet1.Cells(DONATORE, 2)  '(DONATORE,colonna) che contiene la mail destinatario
        Oggetto = Sheet1.Cells(DONATORE, 5)          '(DONATORE,colonna) che contiene l'oggetto della mail
        Testo = Sheet1.Cells(DONATORE, 6)            '(DONATORE,colonna) che contiene il testo della mail
        Debito = Sheet1.Cells(DONATORE, 9)           '(DONATORE,colonna) che contiene il debito
       
            With OutMail
       
            .To = Destinatario_TO
            .Subject = Oggetto 
            .Body = "Ciao " & Nome & _
                    Chr(10) & "ti ricordo che puoi tornare a donare"
           
            '.Send                                   'per inviare subito la mail
            .Display                                 'per aprire e controllare la mail prima di inviarla manualmente
        End With
       
        
        Set OutMail = Nothing
        Set OutApp = Nothing
     
    End Sub

  5. #5

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6747
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: Colorare Celle in base alla risposta della Macro

    Ciao Stefano

    Dovresti allegare anche il file (senza dati sensibili) per poter testare eventuali variazioni delle tue macro.

    Alfredo

  6. #6
    L'avatar di step_90
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    roma
    Messaggi
    5
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Colorare Celle in base alla risposta della Macro

    Ecco qui ho creato un file ad-hoc uguale a quello che uso solo con nomi inventati per evitare di spargere dati sensibili
    File Allegati File Allegati

  7. #7

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6747
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: Colorare Celle in base alla risposta della Macro

    Ciao Stefano

    Prova a modificare la tua macro aggiungendo le istruzioni che ti ho indicato in rosso

    Codice: 
    Public Sub LanciaMailconCondizione()
    
    'Identifico l'ultima riga del foglio Sheet1 che contiene un valore
    Last_Row = Sheet1.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    'Identifica la colonna con intestazione 'CHECK'
    Col_ESITO = Sheet1.Cells.Find("ESITO", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    'imposto un ciclo for-next per individuare le mail da inviare
    For i = 2 To Last_Row 'per la variabile "i" che va da 2 all'ultima cella che contiene un valore
    'se il valore della cella con riga "i" e colonna "CHECK" è "INVIARE MAIL" (condizione TRUE all'interno della formula nella colonna "CHECK"
    If Cells(i, Col_ESITO) = "Chiamare!!" Then ' Allora
       Cells(i, Col_ESITO + 1).Interior.ColorIndex = 28
       Cells(i, Col_ESITO + 1).Value = "SI"
       'individuo la riga con debito maggiore di zero e popolo la variabile
       'con il numero della riga da passare alla macro "InviaMail_con_Condizione(DEBITORE as Integer)"
       DONATORE = i
       InviaMail_con_Condizione (i)
    End If
    Next
    End Sub
    Non so se era questo che volevi

  8. #8
    L'avatar di step_90
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    roma
    Messaggi
    5
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Colorare Celle in base alla risposta della Macro

    Perfetto, grazie mille Alfredo.

    Adesso l'unica cosa è che quando cambio la data di donazione, e L'ESITO passa da CHIAMARE ad IN ATTESA, deve scomparire l'avviso

  9. #9

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6747
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: Colorare Celle in base alla risposta della Macro

    Ciao Stefano

    Ti riallego il tuo file nel quale ho inserito nel modulo del foglio "AVIS SUTRI" la macro che vedi sotto

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ur As Long
    Dim rng As Range
    Dim cel As Range
    On Error Resume Next
    ur = Cells(Rows.Count, 8).End(xlUp).Row
    Set rng = Range("h3:h" & ur)
    For Each cel In rng
        If Target.Offset(0, 3).Value = "Attesa" Then
           Target.Offset(0, 4).Value = ""
        End If
    Next cel
    End Sub
    Prova un po' modificando le date e vedi se funziona come ti aspetti; fai molte prove perché a me talvolta mi ha dato qualche problemino che non sono riuscito a spiegarmi.

    Alfredo
    File Allegati File Allegati

Discussioni Simili

  1. colorare celle in base ad un intervallo di date
    Di open.mind nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 13/02/17, 15:23
  2. [Risolto] Copia celle da foglio 1 a foglio 2 in base alla stringa data in input
    Di Lety88 nel forum Domande su Excel VBA e MACRO
    Risposte: 25
    Ultimo Messaggio: 13/12/16, 09:31
  3. Risposte: 15
    Ultimo Messaggio: 14/05/16, 22:11
  4. Macro per archiviare in base alla scelta dal menu convalida
    Di Lety88 nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 22/04/16, 09:17
  5. Unire 2 colonne in 1 alternando in base alla tipologia della prima colonna
    Di sassa nel forum Domande su Excel in generale
    Risposte: 11
    Ultimo Messaggio: 30/12/15, 12:13

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
  •