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.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      187
    • Comentarios
      97
    • Revisiones
      28

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    1    1

  • Crear macros Excel

  • Mensajes

    • Hola La opción brindada por @torquemada es correcta, funciona, pero hay algunos inconvenientes que (desde mi punto de vista) no la convierten en mi primera elección. Los inconvenientes son: Tendrías que ir columna por columna haciendo los reemplazos, claro que no se harían a mano sino que utilizarías la opción reemplazar o la opción texto en columnas, aun asi demorará un poquito y será trabajoso. Cada vez que descargues otro listado, tendrás que volver a realizar los reemplazos. Me parece una mejor propuesta lo siguiente: Descarga los movimientos a un archivo de Excel Desde tu control de pagos (otro archivo) cargas los movimientos del archivo descargado mediante Power Query Power Query hará los reemplazos y reconocerá todo correctamente (sin que tengas que hacer nada especial) Cuando descargues los movimientos un día posterior, solamente tendrás que hacer clic en "Actualizar" y todo funcionará en automático
    • Hola a todos, Efectivamente, me temo que tal como trabajan las funciones =HOY() y/o =AHORA() (volátiles), sólo con macros puedes obtener soluciones. Un recurso pedestre podría ser, cada vez que quieras que se fije un dato, te sitúes en esa celda y pulses F2, F9 e INTRO.  Pero claro, puede ser un inconveniente si hay que hacerlo repetitivamente en muchas ocasiones,.............. en fin, lo comento sólo como posibilidad. Saludos,
    • Hola nuevamente, mi duda sigue siendo la ruta, o rutas, finales que quedan, esas que llamas "relativas"; igual por si acaso pon 3 o 4 de esas, tal cual son y/o se ven en el explorador de cada PC y, de ser posible, en cualquier otro "lado" en que las veas.
    • Hola, tal cual se plantea, solamente con macros (VBA); en todo caso, hacerlo a mano o con "CTRL + ;". Saludos.
    • Mil gracias, en verdad todo apoyo es super agradecido,   Su aporte y comentarios valen mucho para in servidor, y tiene razon esperare a conocer si alguien comparte alguna otra manera,   Gracias!!! (y)
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.