Saltar al contenido

Cómo ocultar números que no pertenecen al mes deseado


Recommended Posts

publicado

Hola a todos de Maurizio
Mi problema es este:
Con la hoja de Excel de Microsoft Office 2019
Estoy tratando de crear un calendario bastante simple.
¡Siempre que haya utilizado su formato condicional, etc.!
Pero como nunca estoy satisfecho cuando se trata de explotar la programación en su conjunto, he llegado a un punto en que mi calendario funciona bien; Con el único defecto que consiste en el hecho: Tener que ocultar los números que no pertenecen al mes seleccionado.
De hecho, actualmente, si lo dejo en el mes actual, mi calendario funciona de maravilla.
Pero si intento mover el número del mes posicionado en la celda (D1) mi Calendario me posiciona los valores numéricos (1,2,3,) etc...!
en la parte de abajo y no en la de arriba; Eso es todo
Y no entiendo por qué
Gracias a todos los que me quieran ayudar en esto

Nuovo Foglio di lavoro di Microsoft Excel.xlsm

publicado

Una vez puestas las formulas del calendario, no es necesario ponerlas cada vez que se selecciona alguna celda.

Te dejo una macro para restaurar las fórmulas por si se destruyen de forma accidental.

Ya no se muestran los días que no corresponden al mes actual.

Al hacer click en el calendario, la fecha pasa a la celda A2.

Lo he simplificado bastante, no se si es lo que querías.

Saludos

Nuovo Foglio di lavoro di Microsoft Excel - Antoni.xlsm

publicado

Hi Antony
That I was good as a programmer I had never had any doubts.
But in this work of yours You have been more than fantastic
Because it is beautiful in every sense; Much more than I expected.

Even if in my small way thinking you went on vacation.
In the meantime, I have tried to fully put your teachings of all these years that you had given me; And then I was able to solve the problem always using only vba using this last function:

 

Sub ColoraNumeriMeseAttuale8()
On Error GoTo finish

    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim meseAttuale As Integer
    Dim i As Integer
    
    ' Imposta il riferimento al foglio di lavoro in cui si trovano i dati
    Set ws = ThisWorkbook.Sheets("Calendar")
    
    ' Imposta il riferimento al range di celle in cui si desidera applicare la formattazione condizionata
    Set rng = ws.Range("C6:I11") ' Aggiorna con il range di celle desiderato
    
    ' Ottieni il mese attuale
    meseAttuale = Month(ws.Range("A3").Value)
    
                 Foglio1.Range("C6").FormulaLocal = "=(A3-GIORNO.SETTIMANA(A3;3))"
                 Foglio1.Range("C6:I11").Select
                 Foglio1.Range("C6:I11").NumberFormat = "d"
                 
                 Foglio1.Range("A1").Select
                 
    ' Nascondi le celle che non appartengono al mese attuale
    For Each cell In rng
        If cell.Value <> "" Then
            If Not (Month(cell.Value) = meseAttuale) Then
                'cell.ClearContents
                cell.Font.Color = RGB(255, 196, 0)
                cell.Interior.Color = RGB(255, 196, 0)
            Else
                cell.Font.Color = RGB(0, 0, 0)
                cell.Interior.Color = RGB(255, 196, 0)
            End If
        End If
    Next cell
    
finish:
End Sub

That's all
Nothing to see with your Program !

But and all in VBA:
However, this does not mean that I keep your project because I like it better. Thank you very much.
And good day with sympathy from A.Maurizio

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.