Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Cambio colore se le giornate lavorative continue sono uguali

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

Cambio colore se le giornate lavorative continue sono uguali

Postdi Simo1 » 12/04/19 04:19

Buon giorno il mio quesito è questo:
In una griglia con NOME dipedndete in A2 e i giorni del mese da A3 a A32, vorrei che se la somma dei giorni lavorativi continuativi, in base i turni che sono 1 2 3 C con le varianti x gli straordinari, siano uguale o maggiore di 6 la cella A2 cambi colore. Ovviamente la variabile che non permette alla cella di camviare colore è un riposo o ferie o malattia.

Spero di non aver fatto troppa confusione nello scrivere e che sia comprensibile. Grazie ancora
Simo1
Utente Junior
 
Post: 57
Iscritto il: 21/11/18 08:41

Sponsor
 

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Simo1 » 12/04/19 04:22

Scusate ho sbagliato a scrivere la condizione della tabella..... A2 NOME DIPENDENTE da C3 a AG3 giorni del mese

Grazie
Simo1
Utente Junior
 
Post: 57
Iscritto il: 21/11/18 08:41

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi zsadist » 12/04/19 05:16

Verso le 9.00 ti potrò dare indicazioni più precise, ora sono con il cellulare..
Comunque, se hai modo, per ora, prova da solo: usa la formattazione condizionale...

A dopo..
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 76
Iscritto il: 04/04/19 13:48

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi zsadist » 12/04/19 08:13

Allora
premesso che sono un pò duro nel capire le cose, ti dico ciò che ho capito:
in base alla somma di un tot di range, vuoi che al totale di 6 o maggiore di esso, una cella (A2) cambi colore

se ho capito bene, potresti usare la formattazione condizionale:

selezioni la cella A2

Immagine

quindi, va su Formattazione condizionale e selezioni "Nuova Regola"

Immagine

qui selezioni "Utilizza una formula per determinare le celle da formattare"

Immagine

ora puoi scrivere la formula:

nell'esempio della figura, ho immesso la formula

= (ATTENZIONE, sempre il segno "=" prima)

=SOMMA($C$3:$AG$3)>=6

cioè, se la somma del range C3:AG3 è uguale a 6

poi clicchi su "Formato" e scegli il colore, il carattere, il riempimento che deve variare all'avverarsi della condizione di cui sopra

clicca su OK

ti appare questa maschera

Immagine

clicca su Applica e poi su OK (o direttamente su OK)

spero sia questo che ti serva, altrimenti non ho capito nulla :D
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 76
Iscritto il: 04/04/19 13:48

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Anthony47 » 12/04/19 10:28

@Simo: Nell'ipotesi che la cosa difficile sia individuare la formula che serve per la formattazione condizionale devi pero' dirci come vengono popolate le celle C3:AG3 (quali valori, quali sigle, e il loro significato).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 16608
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi zsadist » 12/04/19 10:34

Anthony47 ha scritto:@Simo: Nell'ipotesi che la cosa difficile sia individuare la formula che serve per la formattazione condizionale devi pero' dirci come vengono popolate le celle C3:AG3 (quali valori, quali sigle, e il loro significato).

Ciao


vero anche questo..

più che altro gli ho fatto un esempio di come lavora la formattazione condizionale
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 76
Iscritto il: 04/04/19 13:48

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Simo1 » 12/04/19 16:48

Hehehehe avete ragione vi metto un esempio con un file Excel. Perché infatti il procedimento che hai segnato su lo so fare anch io..... E perché mi sono espresso come una gallina nella spiegazione. A breve metto esempio del file e di cosa deve riportare in automatico. Grazie per la pazienza
Simo1
Utente Junior
 
Post: 57
Iscritto il: 21/11/18 08:41

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi zsadist » 12/04/19 17:05

Ahhh ecco :)
Allora attendiamo il file.. :)

Beh.. è anche vero che prima di lunedì non ci potrò lavorare :(
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 76
Iscritto il: 04/04/19 13:48

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Simo1 » 12/04/19 17:39

Simo1
Utente Junior
 
Post: 57
Iscritto il: 21/11/18 08:41

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Anthony47 » 13/04/19 02:07

Il contenuto del file non quadra con la richiesta iniziale (colorare una cella se ci fossero >=6 giornate di servizio continuativo). Ora mi pare che vorresti evidenziare direttamente i periodi e non una cella /un nominativo.
Inoltre hai gia' numerose formattazioni condizionali con varie colorazioni.

Dovresti quindi chiarire quale e' la richiesta; inoltre vorrei sapere orientativamente quanti nominativi sono in gioco per avere margine di manovra nella risposta; in particolare io mi sarei orientato a lasciare le formattazioni condizionali esistenti e a creare una seconda area esplicitamente dedicata alla segnalazione di "troppi turni consecutivi".

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 16608
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Simo1 » 13/04/19 20:12

Ok. tipo sulla cella del nome va bene! I nominativi sono 17
Simo1
Utente Junior
 
Post: 57
Iscritto il: 21/11/18 08:41

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Anthony47 » 15/04/19 00:10

Non ho capito bene la risposta...
Guarda, preferisco andare su una macro che si fatica meno.
Inserisci questo codice in un "Modulo Standard del vba":
Codice: Seleziona tutto
Sub Checkout()
Dim pPausa, LNomi As String, LastA As Long, I As Long
Dim WDCnt As Long
'
pPausa = Array("R", "F", "P", "A")          '<<< Le sigle che interrompono la sequenza lavorativa
LNomi = "A5"                                '<<< La cella dove cominciano i nomi
'
mymatch = Application.Match("F", pPausa, False)

LastA = Cells(Rows.Count, 1).End(xlUp).Row
Range(LNomi).Resize(LastA, 32).Interior.Color = xlNone
Range(LNomi).Resize(LastA, 32).Font.Color = RGB(0, 0, 0)

For I = Range(LNomi).Row To LastA
    WDCnt = 0
    For j = 2 To 31
   mymatch = Application.Match(Cells(I, j), pPausa, False)
        If IsError(Application.Match(Cells(I, j), pPausa, False)) Then
            WDCnt = WDCnt + 1
            If WDCnt >= 6 Then
                Cells(I, 1).Interior.Color = RGB(255, 0, 0)
                Cells(I, j).Offset(0, -WDCnt + 1).Resize(1, WDCnt).Font.Color = RGB(255, 0, 0)
            End If
        Else
            WDCnt = 0
        End If
    Next j
   
Next I
End Sub
Le righe marcate <<< vanno personalizzate come da commento

Quando hai i turni pronti allora manda in esecuzione la Sub Checkout: i nominativi che hanno 6 giorni consecutivi di turni lavorativi avranno lo sfondo colorato di Rosso, e le giornate che creano questa situazione avranno le scritte in caratteri Rossi (non ho usato lo Sfondo perche' gia' ampiamente manipolato con la formattazione condizionale)

Per inserire la macro nel posto giusto, vedi viewtopic.php?f=26&t=103893&p=647675#p647675
Per le opzioni per mandare in esecuzione una macro, viewtopic.php?f=26&t=103893&p=647678#p647678

Dopo l'inserimento della macro il file va salvato nel formato .xlsm (macro enabled)

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 16608
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Simo1 » 16/04/19 20:41

Nn succede niente... :-(
Simo1
Utente Junior
 
Post: 57
Iscritto il: 21/11/18 08:41

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Anthony47 » 16/04/19 22:27

Nn succede niente... :-(
Devi prima accendere il computer...
Poi prova sul file che hai pubblicato; se hai difficolta' con le istruzioni spiega dove non ti trovi...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 16608
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Simo1 » 17/04/19 11:39

Ho provato a copiare la macro nel foglio excel che ho postato salvandolo come xlsm ma non accade nulla. Inserendo 6 o 7 giorni lavorativi continui la cella di riferimento del nome nn cambia. Cosa posso aver sbagliato?
Simo1
Utente Junior
 
Post: 57
Iscritto il: 21/11/18 08:41

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Anthony47 » 17/04/19 12:33

Pubblica il file su cui stai provando, con la macro gia' inserita, e vedremo di trovare la gabola...
Avatar utente
Anthony47
Moderatore
 
Post: 16608
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Simo1 » 17/04/19 16:33

Simo1
Utente Junior
 
Post: 57
Iscritto il: 21/11/18 08:41

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Anthony47 » 17/04/19 16:58

Confermo la validita' del codice. Per gestire meglio eventuali tabelle con righe vuote possiamo aggiungere un If Cells(I, 1) <> "" Then /End If, come evidenziato nel codice sottostante; ho inoltre aggiunto un messaggio a fine macro per confermarne l'esecuzione:
Codice: Seleziona tutto
Sub Checkout()
Dim pPausa, LNomi As String, LastA As Long, I As Long
Dim WDCnt As Long, RepCnt As Long
'
pPausa = Array("R", "F", "P", "A")          '<<< Le sigle che interrompono la sequenza lavorativa
LNomi = "A5"                                '<<< La cella dove cominciano i nomi
'
mymatch = Application.Match("F", pPausa, False)

LastA = Cells(Rows.Count, 1).End(xlUp).Row
Range(LNomi).Resize(LastA, 32).Interior.Color = xlNone
Range(LNomi).Resize(LastA, 32).Font.Color = RGB(0, 0, 0)

For I = Range(LNomi).Row To LastA
If Cells(I, 1) <> "" Then
    WDCnt = 0
    For j = 2 To 31
   mymatch = Application.Match(Cells(I, j), pPausa, False)
        If IsError(Application.Match(Cells(I, j), pPausa, False)) Then
            WDCnt = WDCnt + 1
            If WDCnt >= 6 Then
                RepCnt = RepCnt + 1
                Cells(I, 1).Interior.Color = RGB(255, 0, 0)
                Cells(I, j).Offset(0, -WDCnt + 1).Resize(1, WDCnt).Font.Color = RGB(255, 0, 0)
            End If
        Else
            WDCnt = 0
        End If
    Next j
End If
Next I
MsgBox ("Completato, " & RepCnt)
End Sub

Ti ricordo cosa fa la macro:
Quando hai i turni pronti allora manda in esecuzione la Sub Checkout: i nominativi che hanno 6 giorni consecutivi di turni lavorativi avranno lo sfondo colorato di Rosso, e le giornate che creano questa situazione avranno le scritte in caratteri Rossi (non ho usato lo Sfondo perche' gia' ampiamente manipolato con la formattazione condizionale)

Se non ti funziona dovresti dire
-il metodo che usi per attivare la macro
-che cosa succede sul tuo elenco
-cosa dice il messaggio di chiusura

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 16608
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi Simo1 » 17/04/19 20:25

Ok la riprovo per aggiungere la macro faccio alt f11 seleziono il vba project che mi interessa e faccio inserisci modulo.... Copio questa macro salvo, il file è già in xlsm e dovrebbe essere tutto ok no?
Simo1
Utente Junior
 
Post: 57
Iscritto il: 21/11/18 08:41

Re: Cambio colore se le giornate lavorative continue sono ug

Postdi zsadist » 17/04/19 21:07

Si, ma poi la devi richiamare per avviarla.. non si attiva da sola :)
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 76
Iscritto il: 04/04/19 13:48

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Cambio colore se le giornate lavorative continue sono uguali":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti