Excel e gli applicativi Microsoft Office formattazione cella…. particolare

Login Registrati
Stai vedendo 11 articoli - dal 1 a 11 (di 11 totali)
  • Autore
    Articoli
  • #52510 Score: 0 | Risposta

    mandoz
    Partecipante

      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.
      #52512 Score: 0 | Risposta

      gianfranco55
      Partecipante
        90 pts

        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

        #52513 Score: 0 | Risposta

        mandoz
        Partecipante

          ciao

          grazie.

          #52514 Score: 0 | Risposta

          LukeReds
          Partecipante
            13 pts

            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";""))

             

            #52515 Score: 0 | Risposta

            D@nilo
            Partecipante
              12 pts

              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

              #52516 Score: 0 | Risposta

              scossa
              Partecipante
                37 pts

                mandoz ha scritto:

                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.

                #52517 Score: 0 | Risposta

                mandoz
                Partecipante

                  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.
                  #52520 Score: 0 | Risposta

                  scossa
                  Partecipante
                    37 pts

                    mandoz ha scritto:

                    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.

                    #52523 Score: 0 | Risposta

                    LukeReds
                    Partecipante
                      13 pts

                      se perdo la formattazione in colonna D ---> tutto cessa di funzionare

                      che significa? le formule  ed il vba sono indipendenti dalla formattazione

                       

                      #52524 Score: 0 | Risposta

                      gianfranco55
                      Partecipante
                        90 pts

                        ciao

                        annullo capito da solo

                        #52525 Score: 0 | Risposta

                        mandoz
                        Partecipante

                          immenso scossa

                          grazie

                        Login Registrati
                        Stai vedendo 11 articoli - dal 1 a 11 (di 11 totali)
                        Rispondi a: formattazione cella…. particolare
                        Gli allegati sono permessi solo ad utenti REGISTRATI
                        Le tue informazioni: