Se puede "modificar" un poco la Función "HOY()" en Excel 2013

La función "HOY()," (así tal cual viene por defecto) devuelve, lo siguiente: "sábado, 3 de enero de 2015," ¿sí?... ¿Es posible qué la "s" de "Sábado", la muestre en mayúscula?...

2 respuestas

Respuesta
1

utiliza la función String.Replace() para eso... aunque antes tienes que verificar que día es, puedes utilizar la función String.Contain() o String.StartWith()...

Ejemplo: sábado

HOY(). Repace("s","S") 'creo

Hola:

Tipeé exactamente lo siguiente: "=HOY().String.Replace("s","S")". Pero, no aduvo.  ¿Qué hice mal?...

Saludos!!

Respectivamente funciona pero para reemplazar la "s" a "S" de la cadena "sábado", como obviamente deseas para que funcione con "todos los días" tendrás que cambiarla, algo así:

            Dim cadenaHoy As String = TimeOfDay.ToString
            If cadenaHoy.StartsWith("lunes") Then
                cadenaHoy = "Lunes" & cadenaHoy.Remove(0, 5)
            ElseIf cadenaHoy.StartsWith("martes") Then
                cadenaHoy = "Martes" & cadenaHoy.Remove(0, 5)
            ElseIf cadenaHoy.StartsWith("miércoles") Then
                cadenaHoy = "Miércoles" & cadenaHoy.Remove(0, 9)
            ElseIf cadenaHoy.StartsWith("jueves") Then
                cadenaHoy = "Jueves" & cadenaHoy.Remove(0, 6)
            ElseIf cadenaHoy.StartsWith("viernes") Then
                cadenaHoy = "Viernes" & cadenaHoy.Remove(0, 7)
            ElseIf cadenaHoy.StartsWith("sábado") Then
                cadenaHoy = "Sábado" & cadenaHoy.Remove(0, 6)
            ElseIf cadenaHoy.StartsWith("domingo") Then
                cadenaHoy = "Domingo" & cadenaHoy.Remove(0, 7)
            End If

Arriba la variable "cadenaHoy" es:

Dim cadenaHoy As String = TODAY()
Respuesta
1

Prueba con la siguiente fórmula

=TEXTO(HOY(),NOMPROPIO("[$-F800]dddd, mmmm dd, aaaa"))

Hola:

No, me da error en la "parte" ",NOMPROPIO".

¿Alguna solución para eso?...

Prueba aparte la función, escribe esto:

=nompropio("dante amor")

El resultado debe ser

Dante Amor

Según el siguiente enlace la función nompropio también funciona en 2013

http://office.microsoft.com/ca-es/excel-help/nompropio-funcion-nompropio-HA102752895.aspx 

Si utilizas el separador ; entonces escribe así la fórmula

=TEXTO(HOY();NOMPROPIO("[$-F800]dddd; mmmm dd; aaaa"))

¿Así Dante: "=TEXTO(HOY();NOMPROPIO("Lunes[$-F800]dddd; mmmm dd; aaaa"))"?...

Pero da el error de "#¡VALOR!".

Y eso que "formatee" la celda con el formato "fecha larga" y todo.  Pero, no.  Da ese error.

Saludos!!

¿Pero por qué pones la palabra lunes?

Yo te envié está fórmula:

=TEXTO(HOY();NOMPROPIO("[$-F800]dddd; mmmm dd; aaaa"))

Por qué pones esto:

"TEXTO(HOY();NOMPROPIO("Lunes[$-F800]dddd; mmmm dd; aaaa"))"

Prueba nuevamente con la fórmula que te envié


También prueba esto:

=nompropio("dante amor")

El resultado debe ser:

Dante Amor


Y también prueba esto

=TEXTO(HOY();"dd/mm")

El resultado debe ser:

05/01


Realiza todas las pruebas y me dices el resultado de cada una de ellas.

Si, cada una de ellas, "por separado," andan perfectamente como Ud. lo describe.  Pero así: "

=TEXTO(HOY();NOMPROPIO("[$-F800]dddd; mmmm dd; aaaa"))

", no.

Saludos!!

Realiza lo siguiente.

Escribe una fecha en la celda "D3"

Selecciona la celda "D3"

Cambia el formato de la celda "D3" a formato de fecha larga como se muestra en la imagen:

Presiona Aceptar.

Vuelve a cambiar el formato de celda de la celda "D3", pero ahora selecciona en categoría "Personalizada", lo que te aparezca en Tipo, cópialo.

Lo que copiaste lo tienes que poner en la fórmula, ejemplo:

=TEXTO(HOY();NOMPROPIO("[$-2C0A]dddd, dd" de "mmmm" de "aaaa;@"))

No utilices mi ejemplo, porque eso es lo que me aparece a mí en la versión 2007, debes recuperar lo que te aparece a ti en la versión 2013.


Me parece que el problema son las comas ","

Prueba también con esto:

=TEXTO(HOY();NOMPROPIO("dddd, mmmm dd, aaaa"))

Dentro del formato estoy poniendo comas ","


Prueba con esto:

=TEXTO(HOY();NOMPROPIO("[$-F800]dddd, mmmm dd, aaaa"))


Realiza nuevamente todas las pruebas, revisa bien cómo estoy poniendo ";" para separar parámetros y estoy poniendo "," para separar los datos de la fecha.


Si señor,!!!!!  Aparentemente, esto, resultó.  Mañana, que compruebe el resultado, lo califico, ¿sí, le parece?...

(inclusive, intenté poner también, la primer letra del mes, tipiarla en mayúscula.  Veremos qué pasa).

No hay problema, termina tus pruebas hasta que salga todo correcto, entonces ya valoras la respuesta.

Hola Dante:

No, lamentablemente, ésta última sugerencia tampoco anduvo.  Espero nuevas sugerencias.

Prueba con esta, la función nompropio debe ir al principio.

=NOMPROPIO(TEXTO(HOY();"[$-F800]dddd, mmmm dd, aaaa"))

Con la función nompropio te va a quedar así

Sábado, 10 De Enero De 2015

La primera letra de cada palabra la convierte en mayúscula.

Si solamente quieres la primera letra habría que poner todo esto:

=MAYUSC(IZQUIERDA(TEXTO(HOY();"[$-F800]dddd, mmmm dd, aaaa");1))&MED(TEXTO(HOY();"[$-F800]dddd, mmmm dd, aaaa");2;LARGO(TEXTO(HOY();"[$-F800]dddd, mmmm dd, aaaa")))

Hola Dante:

Lo que anda "casi, casi," es la primera fórmula.  Yo intenté lo siguiente: ""[$-F800]dddd, "de" mmmm dd, "de" aaaa"))"  Para intentar "bajar" las  dos "Ds" mayúsculas.

Y si bien, no dio ningún resultado.  Tampoco dio ningún error.  Es decir, que, pienso que si usted, le da un "retoque" a esa fórmula, va a quedar exactamente como yo quiero.

Muchísimas gracias.

Saludos!!

Como te darás cuenta, es una limitante de la versión de excel; te pone en minúsculas las palabras.

Esta fórmula te pone la primer letra de cada palabra en mayúscula:

=NOMPROPIO(TEXTO(HOY();"[$-F800]dddd, mmmm dd, aaaa"))

Lo que habías solicitado desde un principio es esto:

"La función "HOY()," (así tal cual viene por defecto) devuelve, lo siguiente: "sábado, 3 de enero de 2015," ¿sí?... ¿Es posible qué la "s" de "Sábado", la muestre en mayúscula?..."

Si quieres que solamente te ponga la primer letra en mayúscula, debes utilizar esta fórmula:

=MAYUSC(IZQUIERDA(TEXTO(HOY();"[$-F800]dddd, mmmm dd, aaaa");1))&MED(TEXTO(HOY();"[$-F800]dddd, mmmm dd, aaaa");2;LARGO(TEXTO(HOY();"[$-F800]dddd, mmmm dd, aaaa")))

La otra opción es hacer una macro.

Pon la siguiente macro en un módulo

Function MayusHoy()
'Por.Dante Amor
    d = UCase(Left(Format(Date, "dddd"), 1))
    b = Mid(Format(Date, "[$-80A]dddd, dd"" de ""mmmm"" de ""yyyy;@"), 2)
    MayusHoy = d & b
End Function

Para utilizar la macro, en lugar de poner hoy() , tienes que poner

Mayushoy()

Resultado:

Domingo, 11 de enero de 2015


Adicionalmente, si quieres que también te aparezca la primer letra del mes, utiliza la siguiente macro.

Function MayusHoy2()
'Por.Dante Amor
    s = Application.Proper(Format(Date, "dddd"))
    d = Format(Date, "dd")
    m = Application.Proper(Format(Date, "mmmm"))
    a = Format(Date, "yyyy")
    fec = s & "," & d & " de " & m & " de " & a
    MayusHoy2 = s & ", " & d & " de " & m & " de " & a
End Function

Dante:

           Intenté hacer "la segunda" opción.  Y resultó lo siguiente:

Hasta allí, ¿todo bien, verdad?...

Pero cuando voy a "Ejecutar" la Macro, muestra el siguiente aviso:

Y si bien intento tipear un "End Sud," después de todo lo antes mostrado, sigue dando error.

¿Algo qué pueda corregir?...

Saludos!!!!

Solamente tienes que poner esta macro. Borra todas las macros y sólo pon esta:

Function MayusHoy2()
'Por.Dante Amor
    s = Application.Proper(Format(Date, "dddd"))
    d = Format(Date, "dd")
    m = Application.Proper(Format(Date, "mmmm"))
    a = Format(Date, "yyyy")
    fec = s & "," & d & " de " & m & " de " & a
    MayusHoy2 = s & ", " & d & " de " & m & " de " & a
End Function

Encontré otra forma, prueba con esta fórmula:

=NOMPROPIO(TEXTO(HOY(), "dddd")) & ", " & TEXTO(HOY(), "dd") & " de " & NOMPROPIO(TEXTO(HOY(),"mmmm")) & " de " & TEXTO(HOY(), "aaaa")

Listo", ya tienes varias soluciones, no olvides valorar.

Bueno Dante, creé la Macro y tipié, en cualquier celda de la hoja: "Miércoles 14 de Enero de 2015".  Veremos, qué pasa mañana.  ¿Sí está bien?...

Ésta última fórmula que me mandó, no, tampoco anduvo.

Gracias,

Saludos.

Tanto la macro como la fórmula funcionan. Revisa nuevamente.

Prueba solamente con este pedazo.

=NOMPROPIO(TEXTO(HOY(), "dddd"))

Te debe poner el día de hoy con mayúsculas, si no te lo pone entonces, es un problema con la versión de excel.

Por lo que deberás utilizar la macro. Sólo recuerda poner una sola macro.

La macro se llama MayusHoy2 y tienes que habilitar tu archivo para macros

Una vez que habilitaste tu archivo para macros, En una celda escribe esto:

=MayusHoy2

Dante, ¿vamos paso a paso, sino, no lo vamos a resolver más.  Sí, le parece?...

Cuando yo voy a crear la Macro, tipeo en mí Éxcel 2013, el "atajo" "Alt+F8," abre la siguiente ventana:

¿Sí...  Voy bien hasta ahí, verdad?...

Ahora, ¿por qué no habilita el botón "Crear"?...

Saludos!!!!

Tu pregunta inicial ya la contesté, solamente necesitabas que la primera letra quedara como mayúsculas y eso lo he resuelto con fórmula y con macro.

Te pido de favor que valores esta pregunta y crees una nueva para cada petición.

Por último envíame tu archivo y te pongo una fórmula en la celda en que me digas

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario "javiergz" y el título de esta pregunta.

Ya le envié el mail.

¡Gracias! 

Dante, ¿cómo estas?...

Mirá he perdido el libro donde tu me habías hecho éste "arreglo".

¿Cómo era.  Primero debía crear la macro, luego pega la fórmula en alguna celda del libro.  O, cómo era?...

H o l a:

La solución que te envié en el archivo solamente es con fórmula.

Si quieres el archivo crear una nueva pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas