Máscara de entrada en una Celda

28/07/2007 - 14:22 por Gustavo Cáceres | Informe spam
Hola de nuevo...

¿Se puede poner una máscara de entrada a una celda, tal y como se hace en
las tablas de access?
He podido ver que se puede asiganr una serie de valores en las opciones de
validacion de datos... Que se puede forzar a colocarle un formato
determinado a las celda, pero no he podido encontrar la manera de "obligar"
al usuario a escribir dd/mm/yyyy, por ejemplo en una celda.
Me gustaría poder obligar a escribir una fecha en un formato determinado,
así como a entrar un DNI con el formato 00000000C.

Gracias de Antemano

Gustavo Cáceres

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
29/07/2007 - 05:15 | Informe spam
hola, Gustavo !

Se puede poner una mascara de entrada a una celda, tal y como se hace en las tablas de access?
He podido ver que se puede asiganr una serie de valores en las opciones de validacion de datos...
Que se puede forzar a colocarle un formato determinado a las celda
pero no he podido encontrar la manera de "obligar" al usuario a escribir dd/mm/yyyy, por ejemplo en una celda.
Me gustaria poder obligar a escribir una fecha en un formato determinado, asi como a entrar un DNI con el formato 00000000C.



1) considera dos o tres detalles, porque hay algunos 'gustos' [o necesidades] que podrian 'costar' bastante [p.e.]
a) excel es un programa [general/preferente]mente 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/mm/yyyy] 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.
Respuesta Responder a este mensaje
#2 Gustavo Cáceres
29/07/2007 - 22:22 | Informe spam
Oido cocina Hector...

Voy a tomar la opción del código VB, y a ver cómo reacciona el usuario ante
él...
Tengo que comprobar que no le aparecen mensajes del tipo de seguridad de
macros etc
Probaré en local varios supuesto y veré si es conveniente.,...

Perfectamente entendido la funcion de Excel.. pero uno tiende a unificar
funcionalidades a todos los programas del microsoft... ;)
Saludos, y te cuento en cuanto tenga algo en firme

Gracias de nuevo...

Gustavo Cáceres




"Héctor Miguel" escribió en el mensaje
news:%
hola, Gustavo !

Se puede poner una mascara de entrada a una celda, tal y como se hace en
las tablas de access?
He podido ver que se puede asiganr una serie de valores en las opciones
de validacion de datos...
Que se puede forzar a colocarle un formato determinado a las celda
pero no he podido encontrar la manera de "obligar" al usuario a escribir
dd/mm/yyyy, por ejemplo en una celda.
Me gustaria poder obligar a escribir una fecha en un formato determinado,
asi como a entrar un DNI con el formato 00000000C.



1) considera dos o tres detalles, porque hay algunos 'gustos' [o
necesidades] que podrian 'costar' bastante [p.e.]
a) excel es un programa [general/preferente]mente 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/mm/yyyy] 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.


Respuesta Responder a este mensaje
#3 Gustavo Cáceres
30/07/2007 - 14:01 | Informe spam
Mamma mia!

Que de código sería necesario para poder emular lo que necesito
Más sabe el diablo por viejo que por diablo.. (Me refiero a la experiencia..
jejejeje)

Voy a recurrir, a los mensajes de validadción de datos de las celdas, para
poder guiar al usuario a rellenar las mismas
No veo la luz dentro del tunel de tanto tipo de control para "Forzar" a
escribir lo que yo quiero.. ;)

Muchas gracias por todo

Saludos..

Gustavo Cáceres



"Héctor Miguel" escribió en el mensaje
news:%
hola, Gustavo !

Se puede poner una mascara de entrada a una celda, tal y como se hace en
las tablas de access?
He podido ver que se puede asiganr una serie de valores en las opciones
de validacion de datos...
Que se puede forzar a colocarle un formato determinado a las celda
pero no he podido encontrar la manera de "obligar" al usuario a escribir
dd/mm/yyyy, por ejemplo en una celda.
Me gustaria poder obligar a escribir una fecha en un formato determinado,
asi como a entrar un DNI con el formato 00000000C.



1) considera dos o tres detalles, porque hay algunos 'gustos' [o
necesidades] que podrian 'costar' bastante [p.e.]
a) excel es un programa [general/preferente]mente 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/mm/yyyy] 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.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida