› Excel e gli applicativi Microsoft Office › formattazione cella…. particolare
-
AutoreArticoli
-
ciao a tutti,
in allegato estratto di file per calcolo ore di lavoro. mi piacerebbe che il giovedì venisse riportato come giov e non gio.
l'unica maniera che ho trovato (non conosco vba) è agire sulla formattazione cella personalizzato ---> g ggg"v".
ho provato anche sulla formula della cella aggiungendo &"v" ---> perde la formattazione.
domanda: si può impostare una formattazione solo sulle celle che riportano il giorno giovedì?
domanda: si può fare altrimenti? vba compreso.
come sempre.... Grazie
Allegati:
You must be logged in to view attached files.ciao
per i giovedì
=GIORNO.SETTIMANA($D11;2)=4
per il giov..........non saprei magari usando TESTO() ce la fai
ma non hai più una data
ciao,
per versioni di excel < 365 in D11 e trascini in basso (da confermare con ctrl shift enter)
=TESTO(SE(RIF.RIGA()=11;$D$6;$D$6+RIF.RIGA(A1)-1);"g ggg")&SE(DESTRA(TESTO(SE(RIF.RIGA()=11;$D$6;$D$6+RIF.RIGA(A1)-1);"g ggg");3)="gio";"v";"")
per excel 365, in D11 e trascini in basso
=LET(x;TESTO(SE(RIF.RIGA()=11;$D$6;$D$6+RIF.RIGA(A1)-1);"g ggg");x&SE(DESTRA(x;3)="gio";"v";""))
Matriciale (si espande da sola, solo per excel 365), in D11. Si adatta come numero di giorni in base al numero del foglio (1 gennaio 2 febbraio ecc)
=LET(x;RIF.RIGA(INDIRETTO("A"&D6&":A"&FINE.MESE(DATA(ANNO($D$6);SOSTITUISCI(DESTRA(CELLA("nomefile";A1);2);"]";"");1);0)));TESTO(x;"g ggg")&SE(GIORNO.SETTIMANA(x;2)=4;"v";""))
Ciao
se non un vezzo estetico in quanto cosi i giorni sono espressi tutti con numero e testo di 3 lettere.....comunque in D11 da trascinare in basso
=SE.ERRORE(GIORNO(SE(DATA(ANNO($D$6);MESE($D$6);RIF.RIGA(A1))>FINE.MESE($D$6;0);"";DATA(ANNO($D$6);MESE($D$6);RIF.RIGA(A1))))&" "&SCEGLI(GIORNO.SETTIMANA(SE(DATA(ANNO($D$6);MESE($D$6);RIF.RIGA(A1))>FINE.MESE($D$6;0);"";DATA(ANNO($D$6);MESE($D$6);RIF.RIGA(A1)));2);"Lun";"Mar";"Mer";"Giov";"Ven";"Sab";"Dom");"")
che gestisce anche mesi con giorni inferiori a 31 e Febbraio in quanto cosi se metti ad esempio febbraio le ultime 3 righe vanno in errore....comunque cosi facendo non hai più date ma testi quindi sono da rivedere le formattazioni condizionali e il calcolo del numero settimana.....che credo sia già sbagliata in quanto nel tuo file se metto nel foglio dati in E17 la data 1/02/2025 mi parte con la 52 esima settimana.....poi in genere i giorni della settimana si contano con lunedi come primo giorno
l'unica maniera che ho trovato (non conosco vba) è agire sulla formattazione cella personalizzato ---> g ggg"v"
Questa semplice sub formatta i soli giovedì come d dddv (non servono le "").
Public Sub fGiov() Dim rCell As Range For Each rCell In Range("D11:D41") rCell.NumberFormat = "d ddd" If Right(rCell.Text, 3) = "gio" Then rCell.NumberFormat = "d dddv" Next rCell End Sub
Agisce sul foglio attivo, quindi se ci sono più fogli "calendario" devi implementare un ciclo ad hoc.
grazie ragazzi. tanta roba.
se perdo la formattazione in colonna D ---> tutto cessa di funzionare
ho scelto @scossa, copiando il suo modulo in ogni foglio 1-2-3--->12
è cambiato il giovedì solo sul foglio 1 - nonostante abbia selezionato, uno a uno, tutti i fogli
se cambio anno in DATI!E17 ---> 01/01/2024 anche il foglio1 risulta non corretto
temo di aver sbagliato qualcosa, non so cosa e dove
uso ms0 2016
grazie ancora
un saluto
Allegati:
You must be logged in to view attached files.se cambio anno in DATI!E17 ---> 01/01/2024 anche il foglio1 risulta non corretto
1) elimina tutte le sub fGiov() da tutti i fogli;
2) inserisci questo codice nel modulo del foglio "Dati":
Private Sub Worksheet_Change(ByVal Target As Range) Dim rCell As Range, ws As Worksheet Dim j As Integer If Target.Address = "$E$17" Then For j = 1 To 12 Set ws = ThisWorkbook.Worksheets(CStr(j)) For Each rCell In ws.Range("D11:D41") rCell.NumberFormat = "d ddd" If Right(rCell.Text, 3) = "gio" Then rCell.NumberFormat = "d dddv" Next rCell Next j Set ws = Nothing End If End Sub
in questo modo il codice che "corregge" i giovedì viene eseguita automaticamente ogni volta che cambi la data in E17 del foglio Dati.
se perdo la formattazione in colonna D ---> tutto cessa di funzionare
che significa? le formule ed il vba sono indipendenti dalla formattazione
ciao
annullo capito da solo
-
AutoreArticoli