Números con formato de Fechas

01/04/2008 - 09:49 por Nerea | Informe spam
Buenas a todos,
¿Es posible en Excel 2007, que al introducir un número por ejemplo:
02052008, te muestre en la celda en formato fecha 02-may-08? Sino hay
alguna forma que te ponga en las celdas como una máscara de entrada
para introducir la fecha sin tener que escribir "/" o "-", quiero
decir del estilo __/__/__??
Muchas gracias
Saludos
 

Leer las respuestas

#1 Héctor Miguel
01/04/2008 - 21:26 | Informe spam
hola, Nerea !

Es posible en Excel 2007, que al introducir un numero por ejemplo: 02052008
te muestre en la celda en formato fecha 02-may-08?
Sino hay alguna forma que te ponga en las celdas como una mascara de entrada
para introducir la fecha sin tener que escribir "/" o "-", quiero decir del estilo __/__/__?



1) considera dos o tres detalles, porque hay algunos gustos (o necesidades) que podrian "costar" bastante (p.e.)
a) excel es un programa (general/preferentemente) utilizado para realizar calculos
b) NO es su fuerte, aplicar "mascaras/formatos/... en celdas de manera previa" a la entrada de los datos (reales)
c) hablando de fechas... es probable que el 'orden' al que "obligas" (dd/mmm/yy) sea diferente para otros usuarios/pc's/...
es conveniente visitar la siguiente exposicion de manejos de fechas (de Stephen Bullen):
-> http://www.bmsltd.ie/ExcelProgRef/Ch22/default.htm
(... etc. etc. etc.) ;)

2) es probable que te salga mas "barato" aprovechar un mensaje de reglas de validacion para notificar al usuario dicha "obligacion" -?-

3) si de todas formas requieres (al menos intentar) una forma por codigos para "forzar" (solo visual y previamente) al usuario...
prueba copiando/pegando las siguientes instrucciones en el modulo de codigo de "esa" hoja
-> suponiendo que el rango en donde requieres de esa precisa forma de entrada fuera 'A2:A5'
y solo como ejemplo el que se refiere a las fechas (ajusta/agrega/modifica/complementa/... como sea necesario)

Private Const DateFormat As String = "dd/mm/aaaa"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static Anterior As Range
On Error Resume Next
If Anterior.Address <> ActiveCell.Address And Anterior = DateFormat _
Then Anterior.ClearContents: Set Anterior = ActiveCell
If Not Intersect(Target, Range("a2:a5")) Is Nothing Then
If Target.Count > 1 Then ActiveCell.Select
If IsEmpty(ActiveCell) Then ActiveCell = DateFormat: Set Anterior = ActiveCell
End If
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Preguntas similares