Condividi tramite

Formattazione condizionale - Formatta ogni tot giorni...

Anonimo
2014-01-13T22:48:44+00:00

Salve a tutti,

Ho delle colonne ognuna delle quali elenca delle date con intervalli diversi; ad esempio la prima colonna presenta un intervallo di 50 giorni, la seconda di 20 e così via. 

Vorrei sapere se esiste un comando per formattare, ad esempio nel caso della prima colonna, ogni 100 giorni, cioè ogni due celle.

Una soluzione che contenga il criterio dei giorni sarebbe preferibile, ma dato che sono abbastanza inguaiato  si accetta di tutto. :)

Ringraziando anticipatamente

Un saluto

Paolo

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Anonimo
    2014-01-14T10:33:31+00:00

    Salve a tutti,

    Ho delle colonne ognuna delle quali elenca delle date con intervalli diversi; ad esempio la prima colonna presenta un intervallo di 50 giorni, la seconda di 20 e così via. 

    Vorrei sapere se esiste un comando per formattare, ad esempio nel caso della prima colonna, ogni 100 giorni, cioè ogni due celle.

    Una soluzione che contenga il criterio dei giorni sarebbe preferibile, ma dato che sono abbastanza inguaiato  si accetta di tutto. :)

    Ringraziando anticipatamente

    Un saluto

    Paolo

    Ciao Paolo,

    dubito si possa risolvere con una formattazione condizionale, prova piuttosto con la seguente macro.

    Andrea.


    Sub formattaDate()

    Dim rColumn, rCell As Range

    Dim lDays As Long

    Dim dtTarget As Date

    On Error Resume Next

    Set rColumn = Application.InputBox("Seleziona la colonna da formattare", "Formattazione date", , , , , , 8)

    If rColumn Is Nothing Then Exit Sub

    If rColumn.Columns.Count > 1 Then

    Call MsgBox("E possibile selezionare solo una colonna", vbInformation, "Formattazione date")

    Exit Sub

    End If

    Set rColumn = rColumn.Resize(Cells(Rows.Count, rColumn.Column).End(xlUp).Row)

    lDays = Application.InputBox("Intervallo formattazione in giorni", "Formattazione date", 100)

    If lDays < 1 Then

    Call MsgBox("Valore non ammesso", vbInformation, "Formattazione date")

    Exit Sub

    End If

    For Each rCell In rColumn

    If IsDate(rCell.Value) Then

    If dtTarget = 0 Then dtTarget = rCell.Value

    If rCell.Value >= dtTarget + lDays Then

    dtTarget = 0

    rCell.Font.Color = vbRed

    Else

    rCell.Font.Color = vbBlack

    End If

    End If

    Next

    End Sub


    La risposta è stata utile?

    0 commenti Nessun commento

9 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-01-14T11:45:44+00:00

    Grazie mille Andrea!

    Sembrerebbe funzionare, solo che non riesco ad inserire gli intervalli giusti; mi scuso ma non sono molto pratico di VBA (e dei linguaggi di programmazione in generale)

    Per capire meglio, cosa s'intende alla riga:

       lDays = Application.InputBox("Intervallo formattazione in giorni", "Formattazione date", 100)

    Presumo che 100 sia l'intervallo dei giorni che si deve seguire per la formattazione,

    ma cosa s'intende per "Intervallo formattazione in giorni"? Il numero totale di giorni compresi nell'intervallo considerato? E "Formattazione date"?

    Ciao Paolo,

    forse sono stato un po criptico:

    Vorrei sapere se esiste un comando per formattare, ad esempio nel caso della prima colonna,ogni 100 giorni, ...

    La macro prende come riferimento la prima data e formatta quella data posteriore di almeno 100 giorni dalla data di riferimento, la successiva avrà come riferimento l'ultima data formattata e così via.

    Andrea.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-01-14T11:33:21+00:00

    Grazie mille Andrea!

    Sembrerebbe funzionare, solo che non riesco ad inserire gli intervalli giusti; mi scuso ma non sono molto pratico di VBA (e dei linguaggi di programmazione in generale)

    Per capire meglio, cosa s'intende alla riga:

       lDays = Application.InputBox("Intervallo formattazione in giorni", "Formattazione date", 100)

    Presumo che 100 sia l'intervallo dei giorni che si deve seguire per la formattazione,

    ma cosa s'intende per "Intervallo formattazione in giorni"? Il numero totale di giorni compresi nell'intervallo considerato? E "Formattazione date"?

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-01-14T11:20:21+00:00

                   

    Vorrei sapere se esiste un comando per formattare, ad esempio nel caso della prima colonna, ogni 100 giorni, cioè ogni due celle.

    Capito pochissimo. Se quello che vuoi fare è formattare una cella si e una no, puoi formattare in base alla riga pari o dispari.

    • Seleziona le tue celle
    • Formattazione condizionale
    • Nuova regola
    • Utilizza una formula per determinare le celle da formattare
    • Questa la formula da inserire: =RESTO(RIF.RIGA(A1);2)=0
    • Decidi la formattazione da dare alle celle

    In questo modo celle delle righe pari verranno formattate. Allo stesso modo puoi, modificando il divisore (nella formula postata il 2) , determinare quali celle formattare o, mettendo <> 0 formattare le righe dispari.

    Mah...

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-01-14T10:21:18+00:00

                    ...

    Vorrei sapere se esiste un comando per formattare, ad esempio nel caso della prima colonna, ogni 100 giorni, cioè ogni due celle.

    ...

    ?????????????????

    La risposta è stata utile?

    0 commenti Nessun commento