Validar entrada de datos

11/02/2006 - 03:56 por LupitaGS | Informe spam
Necesito validar que los datos que se capturan en una celda tengan un formato
determinado, que los tres primeros digitos sean caracteres y los 6 siguientes
sean numeros.

Preguntas similare

Leer las respuestas

#6 KL
11/02/2006 - 18:37 | Informe spam
Hola chicos,


"Cristian" wrote:
=BUSCARV(TEXTO(A5;"000"".""00"".""000");$A$1:$B$2;2;0)



Se puede simplificar un pelin:

=BUSCARV(TEXTO(A5;"000\.00\.000");$A$1:$B$2;2;0)

Saludos,
KL
Respuesta Responder a este mensaje
#7 Playa de Chilches - atencion al cliente
11/02/2006 - 23:58 | Informe spam
Saludos a Hector, KL y Cristian y tambien a LupitaGS por mi intromision en
su post.
No me he explicado bien... cuando entro un numero de 8 digitos y le doy a
enter necesito que se transforme en un codigo separado por puntos
tres.dos.tres digitos, es decir el n? 01533650 quede reflejado en la celda
como 015.33.650 y despues en la columna siguiente de la misma fila poner la
formula de buscarV para que ese codigo me lo busque en la base de datos y me
ponga por ejemplo la descripcion del articulo. Esto es:
Columna A celda a1 ... escribo 01533650 -> enter-->015.33.650 (se transforma
en codigo con puntos) y en la columna B =buscarv(a1;basedatos;2;falso) y me
funcione... porque hasta ahora haciendo un formato especial ###.##.### en la
celda a1, buscarV no me funciona...???
gracias







"KL" escribio en el mensaje
news:
Hola chicos,


"Cristian" wrote:
=BUSCARV(TEXTO(A5;"000"".""00"".""000");$A$1:$B$2;2;0)



Se puede simplificar un pelin:

=BUSCARV(TEXTO(A5;"000\.00\.000");$A$1:$B$2;2;0)

Saludos,
KL
Respuesta Responder a este mensaje
#8 KL
12/02/2006 - 00:46 | Informe spam
Hola Aprendiz,

1) Creo sinceramente que no has entendido la solucion que se te ha dado la cual es mucho mas practica que el procedimiento que
planteas tu.
2) Lo que quieres/necesitas tu es convertir el valor numerico en texto - cosa que ningun formato puede hacer, o sea que ni lo
intentes.
3) Si insistes en el procedimiento que modifica el valor introducido, solo tienes una opcion disponible - macros. P.ej. algo asi en
el modulo de la hoja en cuestion:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, rng As Range
On Error Resume Next
Set rng = Intersect(Target, [A:A])
On Error GoTo 0
If rng Is Nothing Then Exit Sub
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
For Each c In rng
If IsNumeric(c) Then c = Format(c, "000\.00\.000")
Next
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

4) Como variante de la solucion ofrecida en mensajes anteriores (aunque bastante menos eficiente y mas aparatosa), podrias usar una
columna adicional que convertiria los valores numericos en texto mediante la formula =TEXTO(A5;"000\.00\.000") y luego usar el
resultado en tu BUSCARV.

Saludos,
KL


"Playa de Chilches - atencion al cliente" wrote in message
news:
Saludos a Hector, KL y Cristian y tambien a LupitaGS por mi intromision en su post.
No me he explicado bien... cuando entro un numero de 8 digitos y le doy a enter necesito que se transforme en un codigo
separado por puntos tres.dos.tres digitos, es decir el n? 01533650 quede reflejado en la celda como 015.33.650 y despues en la
columna siguiente de la misma fila poner la formula de buscarV para que ese codigo me lo busque en la base de datos y me ponga por
ejemplo la descripcion del articulo. Esto es:
Columna A celda a1 ... escribo 01533650 -> enter-->015.33.650 (se transforma en codigo con puntos) y en la columna B
=buscarv(a1;basedatos;2;falso) y me funcione... porque hasta ahora haciendo un formato especial ###.##.### en la celda a1, buscarV
no me funciona...???
gracias







"KL" escribio en el mensaje news:
Hola chicos,


"Cristian" wrote:
=BUSCARV(TEXTO(A5;"000"".""00"".""000");$A$1:$B$2;2;0)



Se puede simplificar un pelin:

=BUSCARV(TEXTO(A5;"000\.00\.000");$A$1:$B$2;2;0)

Saludos,
KL




Respuesta Responder a este mensaje
#9 Playa de Chilches - atencion al cliente
12/02/2006 - 20:07 | Informe spam
Perdona KL, si que he entendido las formulas que me habiais planteado, lo
que pasa es que tengo innumerables plantillas y formulas ya hechas
actualmente y me seria muy "trabajoso" modificarlas ahora...pero en la
proxima revision de las plantillas incluire esa formula que me habeis
proporcionado y que agradezco sinceramente... es muy util ... sin embargo
para que cuando envie al cliente la plantilla debe figurar con los puntos
para que identifiquen el codigo de articulo... en fin un poco complicado de
entender ( y de explicar por supuesto)
un ejemplo de las 200 formulas por plantilla...
=SI($G$7=2;SI(B29="";"";SI(ESERROR(BUSCARV(B29;'D:\Mis
documentos\Gestion 2005\[Tarifa HF
actual.xls]DGH'!$1:$65536;6;FALSO));"?existe?";BUSCARV(B29;'D:\Mis
documentos\Gestion 2005\[Tarifa
HFactual.xls]DGH'!$1:$65536;6;FALSO)));SI($G$7=1;SI(B29="";"";SI(ESERROR(BUSCARV(B29;'D:\Mis
documentos\Gestion 2005\[Tarifa
HFactual.xls]DGH'!$1:$65536;12;FALSO));"?existe?";BUSCARV(B29;'D:\Mis
documentos\Gestion 2005\[Tarifa HFactual.xls]DGH'!$1:$65536;12;FALSO)))))




En este caso concreto, en la celda B29 escribo actualmente el codigo de
articulo con puntos y pretendia que al hacer clic transformara el codigo sin
puntos introducido en uno con puntos...
perdon y gracias por vuestra inestimable ayuda...
Jose Rafael


"KL" escribio en el mensaje
news:%
Hola Aprendiz,

1) Creo sinceramente que no has entendido la solucion que se te ha dado la
cual es mucho mas practica que el procedimiento que planteas tu.
2) Lo que quieres/necesitas tu es convertir el valor numerico en texto -
cosa que ningun formato puede hacer, o sea que ni lo intentes.
3) Si insistes en el procedimiento que modifica el valor introducido, solo
tienes una opcion disponible - macros. P.ej. algo asi en el modulo de la
hoja en cuestion:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, rng As Range
On Error Resume Next
Set rng = Intersect(Target, [A:A])
On Error GoTo 0
If rng Is Nothing Then Exit Sub
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
For Each c In rng
If IsNumeric(c) Then c = Format(c, "000\.00\.000")
Next
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

4) Como variante de la solucion ofrecida en mensajes anteriores (aunque
bastante menos eficiente y mas aparatosa), podrias usar una columna
adicional que convertiria los valores numericos en texto mediante la
formula =TEXTO(A5;"000\.00\.000") y luego usar el resultado en tu BUSCARV.

Saludos,
KL


"Playa de Chilches - atencion al cliente"
wrote in message news:
Saludos a Hector, KL y Cristian y tambien a LupitaGS por mi intromision
en su post.
No me he explicado bien... cuando entro un numero de 8 digitos y le doy a
enter necesito que se transforme en un codigo separado por puntos
tres.dos.tres digitos, es decir el n? 01533650 quede reflejado en la
celda como 015.33.650 y despues en la columna siguiente de la misma fila
poner la formula de buscarV para que ese codigo me lo busque en la base
de datos y me ponga por ejemplo la descripcion del articulo. Esto es:
Columna A celda a1 ... escribo 01533650 -> enter-->015.33.650 (se
transforma en codigo con puntos) y en la columna B
=buscarv(a1;basedatos;2;falso) y me funcione... porque hasta ahora
haciendo un formato especial ###.##.### en la celda a1, buscarV no me
funciona...???
gracias







"KL" escribio en el mensaje
news:
Hola chicos,


"Cristian" wrote:
=BUSCARV(TEXTO(A5;"000"".""00"".""000");$A$1:$B$2;2;0)



Se puede simplificar un pelin:

=BUSCARV(TEXTO(A5;"000\.00\.000");$A$1:$B$2;2;0)

Saludos,
KL







Respuesta Responder a este mensaje
#10 KL
12/02/2006 - 21:35 | Informe spam
Hola Aprendiz,

No tienes por que pedir perdon :-) Me alegra poder ser de ayuda.

Un abrazo,
KL


"Playa de Chilches - atencion al cliente" wrote in message
news:%
Perdona KL, si que he entendido las formulas que me habiais planteado, lo que pasa es que tengo innumerables plantillas y formulas
ya hechas actualmente y me seria muy "trabajoso" modificarlas ahora...pero en la proxima revision de las plantillas incluire esa
formula que me habeis proporcionado y que agradezco sinceramente... es muy util ... sin embargo para que cuando envie al cliente
la plantilla debe figurar con los puntos para que identifiquen el codigo de articulo... en fin un poco complicado de entender ( y
de explicar por supuesto)
un ejemplo de las 200 formulas por plantilla...
=SI($G$7=2;SI(B29="";"";SI(ESERROR(BUSCARV(B29;'D:\Mis documentos\Gestion 2005\[Tarifa HF
actual.xls]DGH'!$1:$65536;6;FALSO));"?existe?";BUSCARV(B29;'D:\Mis documentos\Gestion 2005\[Tarifa
HFactual.xls]DGH'!$1:$65536;6;FALSO)));SI($G$7=1;SI(B29="";"";SI(ESERROR(BUSCARV(B29;'D:\Mis documentos\Gestion 2005\[Tarifa
HFactual.xls]DGH'!$1:$65536;12;FALSO));"?existe?";BUSCARV(B29;'D:\Mis documentos\Gestion 2005\[Tarifa
HFactual.xls]DGH'!$1:$65536;12;FALSO)))))




En este caso concreto, en la celda B29 escribo actualmente el codigo de articulo con puntos y pretendia que al hacer clic
transformara el codigo sin puntos introducido en uno con puntos...
perdon y gracias por vuestra inestimable ayuda...
Jose Rafael


"KL" escribio en el mensaje news:%
Hola Aprendiz,

1) Creo sinceramente que no has entendido la solucion que se te ha dado la cual es mucho mas practica que el procedimiento que
planteas tu.
2) Lo que quieres/necesitas tu es convertir el valor numerico en texto - cosa que ningun formato puede hacer, o sea que ni lo
intentes.
3) Si insistes en el procedimiento que modifica el valor introducido, solo tienes una opcion disponible - macros. P.ej. algo asi
en el modulo de la hoja en cuestion:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, rng As Range
On Error Resume Next
Set rng = Intersect(Target, [A:A])
On Error GoTo 0
If rng Is Nothing Then Exit Sub
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
For Each c In rng
If IsNumeric(c) Then c = Format(c, "000\.00\.000")
Next
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

4) Como variante de la solucion ofrecida en mensajes anteriores (aunque bastante menos eficiente y mas aparatosa), podrias usar
una columna adicional que convertiria los valores numericos en texto mediante la formula =TEXTO(A5;"000\.00\.000") y luego usar
el resultado en tu BUSCARV.

Saludos,
KL


"Playa de Chilches - atencion al cliente" wrote in message
news:
Saludos a Hector, KL y Cristian y tambien a LupitaGS por mi intromision en su post.
No me he explicado bien... cuando entro un numero de 8 digitos y le doy a enter necesito que se transforme en un codigo
separado por puntos tres.dos.tres digitos, es decir el n? 01533650 quede reflejado en la celda como 015.33.650 y despues en la
columna siguiente de la misma fila poner la formula de buscarV para que ese codigo me lo busque en la base de datos y me ponga
por ejemplo la descripcion del articulo. Esto es:
Columna A celda a1 ... escribo 01533650 -> enter-->015.33.650 (se transforma en codigo con puntos) y en la columna B
=buscarv(a1;basedatos;2;falso) y me funcione... porque hasta ahora haciendo un formato especial ###.##.### en la celda a1,
buscarV no me funciona...???
gracias







"KL" escribio en el mensaje news:
Hola chicos,


"Cristian" wrote:
=BUSCARV(TEXTO(A5;"000"".""00"".""000");$A$1:$B$2;2;0)



Se puede simplificar un pelin:

=BUSCARV(TEXTO(A5;"000\.00\.000");$A$1:$B$2;2;0)

Saludos,
KL











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