› 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 SubAgisce 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 Subin 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
