Ayuda Urgente!!!!

05/05/2007 - 00:38 por DOORS | Informe spam
Saludos!!

Amigos tengo una duda, en una hoja de excel tengo un formato que me funciona
como cuentas de gastos, por ejemplo de la celda A12 a la Celda A26 se deben
de poner las fechas en que se hicieron los gastos , esto es variable a como
puede ser una fecha pueden ser 2,3,4,8 etc. luego tengo otras dos columnas
una que va desde la I12 a la I26, en ese rango se debe digitar lo que
corresponde al objeto edl gasto de ese día junto con otra columna que hay que
s el presupuesto esa va desde J12 hasta J26.

Lo que deseo hacer es obligar al usuario rellenar los cmpos
correspondientes, es decir si pongo una fecha debo de obligar al usuario a
comletar el resto del campos, por ejemplo si coloco pongo una fecha en la
celda A12, en la celda I12 y J12 debo de obligar a completar los campos y si
no que no me deje continuar.

Tengo un código mas o menos algo así:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
With Range("A12")
If .Value = <> " "Then
MsgBox "Debe Registrar el objeto del gasto"
MsgBox "Debe Registrar el tipo de presupuesto"
.Select
End If
End With

End sub

Lo que quiero hacer es que si el campo de fecha es diferente de " ", que me
obligue a llenar la celda I12 y la J12, porque con esto lo unico que logro es
mandar los mensajes de advertencia y nada mas : (

Gracias Por la ayuda que me puedan brindar!!!

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
05/05/2007 - 06:50 | Informe spam
hola, DOORS !

[creo que] te sale mas 'barato' usar formatos condicionales como 'alertas visuales' para el usuario [p.e.]

1) selecciona el rango 'I12:J26'
2) ve a [menu] datos / validacion...
condicion 1: formula
formula: -> =y(largo($a12),no(largo(i12))) <= OJO: mi separador de argumentos es la coma :D
[boton] formato... -> pon algun formato [trama] 'llamativo' [p.e. fondo de la celda en color rojo/amarillo/...]
-> cuando el usuario introduzca una fecha en la columna 'A' [filas 12 a 26]
mientras NO rellene las columnas 'I:J' [misma fila de la fecha] estas permaneceran del color... [el que le apliques] :))

pros: te ahorras los codigos [probablemente 'desgastantes' ?]
cons: si copias desde otro rango SOBRE las celdas 'validadas'... perderas las validaciones aplicadas :-((

si cualquier duda [o prefieres el uso de codigos]... comentas ?
saludos,
hector.

p.d. OJO: con la instruccion que usas: -> Application.EnableEvents = False
si no la devuelves a 'True'... los eventos ya no seran 'detectados' [al menos en esa sesion de excel] :-((

__ la consulta original __
... en una hoja... tengo... cuentas de gastos, por ejemplo
... A12... A26 se deben de poner las fechas en que se hicieron los gastos
esto es variable a como puede ser una fecha pueden ser 2,3,4,8 etc. luego tengo
... desde la I12 a la I26... se debe digitar lo que corresponde al objeto edl gasto de ese dia
... otra columna que... s el presupuesto esa va desde J12 hasta J26.
... deseo... obligar al usuario rellenar los cmpos correspondientes
... por ejemplo si... pongo una fecha en... A12, en la celda I12 y J12 debo de obligar a completar los campos
y si no que no me deje continuar.

Tengo un codigo mas o menos algo asi:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
With Range("A12")
If .Value = <> " "Then
MsgBox "Debe Registrar el objeto del gasto"
MsgBox "Debe Registrar el tipo de presupuesto"
.Select
End If
End With
End sub
... con esto lo unico que logro es mandar los mensajes de advertencia y nada mas : (
Respuesta Responder a este mensaje
#2 Feliciano
05/05/2007 - 13:07 | Informe spam
Hola Doors:
La siguiente exposicion no es una solucion. Mas bien se trata de aclarar la
expuesta.
Supongo que tambien tendras la necesidad de los casos controvertidos. Por
ejemplo: si se informa en la celda de gasto I12, tambien deberan estar
cumplimentadas las celdas A12 (fecha) y J12 (presupuesto); o si lo que se
informa es la celda J12 (presupuesto), tambien deberan estar cumplimentadas
las celdas A12 (fecha) e I12 (gasto).
Por otra parte seria interesante saber si hay o no inconveniente en proteger
la hoja.
Saludos,

Feliciano.
-
"Héctor Miguel" escribió en el mensaje
news:
hola, DOORS !

[creo que] te sale mas 'barato' usar formatos condicionales como 'alertas
visuales' para el usuario [p.e.]

1) selecciona el rango 'I12:J26'
2) ve a [menu] datos / validacion...
condicion 1: formula
formula: -> =y(largo($a12),no(largo(i12))) <= OJO: mi separador de
argumentos es la coma :D
[boton] formato... -> pon algun formato [trama] 'llamativo' [p.e. fondo
de la celda en color rojo/amarillo/...]
-> cuando el usuario introduzca una fecha en la columna 'A' [filas 12 a
26]
mientras NO rellene las columnas 'I:J' [misma fila de la fecha] estas
permaneceran del color... [el que le apliques] :))

pros: te ahorras los codigos [probablemente 'desgastantes' ?]
cons: si copias desde otro rango SOBRE las celdas 'validadas'... perderas
las validaciones aplicadas :-((

si cualquier duda [o prefieres el uso de codigos]... comentas ?
saludos,
hector.

p.d. OJO: con la instruccion que usas: -> Application.EnableEvents = False
si no la devuelves a 'True'... los eventos ya no seran 'detectados'
[al menos en esa sesion de excel] :-((

__ la consulta original __
... en una hoja... tengo... cuentas de gastos, por ejemplo
... A12... A26 se deben de poner las fechas en que se hicieron los gastos
esto es variable a como puede ser una fecha pueden ser 2,3,4,8 etc. luego
tengo
... desde la I12 a la I26... se debe digitar lo que corresponde al objeto
edl gasto de ese dia
... otra columna que... s el presupuesto esa va desde J12 hasta J26.
... deseo... obligar al usuario rellenar los cmpos correspondientes
... por ejemplo si... pongo una fecha en... A12, en la celda I12 y J12
debo de obligar a completar los campos
y si no que no me deje continuar.



Tengo un codigo mas o menos algo asi:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
With Range("A12")
If .Value = <> " "Then
MsgBox "Debe Registrar el objeto del gasto"
MsgBox "Debe Registrar el tipo de presupuesto"
.Select
End If
End With
End sub
... con esto lo unico que logro es mandar los mensajes de advertencia y
nada mas : (




Respuesta Responder a este mensaje
#3 Héctor Miguel
07/05/2007 - 07:08 | Informe spam
hola, chicos !

Feliciano escribio en el mensaje ...
La siguiente exposicion no es una solucion. Mas bien se trata de aclarar la expuesta.
Supongo que tambien tendras la necesidad de los casos controvertidos. Por ejemplo:
si se informa en la celda de gasto I12, tambien deberan estar cumplimentadas las celdas A12 (fecha) y J12 (presupuesto)
o si lo que se informa es la celda J12 (presupuesto), tambien deberan estar cumplimentadas las celdas A12 (fecha) e I12 (gasto).
Por otra parte seria interesante saber si hay o no inconveniente en proteger la hoja.



[parece que] tambien a Feliciano le gusta 'ver'... 'mas alla'... de lo expuesto en las consultas :)) [crei que era el unico :D]
[perdon por insistir, pero]... sigo creyendo que 'sale mas barato' el uso de alertas visuales por formatos condicionales :))

el siguiente ejemplo aplica formatos a las celdas 'llenas' -> hasta en tanto sean rellenadas las 3 columnas ['A', 'I:J']

1) selecciona los rangos 'I12:J26' y despues 'A12:A26' [solo para que la celda activa sea 'A12' como la formula del ejemplo]
2) ve a [menu] datos / validacion...
a) condicion 1: formula
b) formula: -> =y(largo(a12),(largo($a12)>0)+contara($i12:$j12)<3)
-> OJO: mi separador de argumentos es la coma :D
c) [boton] formato... -> pon algun formato [trama] 'llamativo' [p.e. fondo de la celda en color rojo/amarillo/...]

-> los mismos 'pros' y 'contras' que en la propuesta anterior ;)

saludos,
hector.

__ las consultas anteriores __
[creo que] te sale mas 'barato' usar formatos condicionales como 'alertas visuales' para el usuario [p.e.]

1) selecciona el rango 'I12:J26'
2) ve a [menu] datos / validacion...
condicion 1: formula
formula: -> =y(largo($a12),no(largo(i12))) <= OJO: mi separador de argumentos es la coma :D
[boton] formato... -> pon algun formato [trama] 'llamativo' [p.e. fondo de la celda en color rojo/amarillo/...]
-> cuando el usuario introduzca una fecha en la columna 'A' [filas 12 a 26]
mientras NO rellene las columnas 'I:J' [misma fila de la fecha] estas permaneceran del color... [el que le apliques] :))

pros: te ahorras los codigos [probablemente 'desgastantes' ?]
cons: si copias desde otro rango SOBRE las celdas 'validadas'... perderas las validaciones aplicadas :-((

p.d. OJO: con la instruccion que usas: -> Application.EnableEvents = False
si no la devuelves a 'True'... los eventos ya no seran 'detectados' [al menos en esa sesion de excel] :-((

__ la consulta original __
... en una hoja... tengo... cuentas de gastos, por ejemplo
... A12... A26 se deben de poner las fechas en que se hicieron los gastos
esto es variable a como puede ser una fecha pueden ser 2,3,4,8 etc. luego tengo
... desde la I12 a la I26... se debe digitar lo que corresponde al objeto edl gasto de ese dia
... otra columna que... s el presupuesto esa va desde J12 hasta J26.
... deseo... obligar al usuario rellenar los cmpos correspondientes... por ejemplo si...
pongo una fecha en... A12, en la celda I12 y J12 debo de obligar a completar los campos y si no que no me deje continuar.
Tengo un codigo mas o menos algo asi:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
With Range("A12")
If .Value = <> " "Then
MsgBox "Debe Registrar el objeto del gasto"
MsgBox "Debe Registrar el tipo de presupuesto"
.Select
End If
End With
End sub
... con esto lo unico que logro es mandar los mensajes de advertencia y nada mas : (
Respuesta Responder a este mensaje
#4 tanuko
28/07/2011 - 12:31 | Informe spam
Héctor Miguel escribió el 05/05/2007 06:50 :
hola, DOORS !

[creo que] te sale mas 'barato' usar formatos condicionales como 'alertas
visuales' para el usuario [p.e.]

1) selecciona el rango 'I12:J26'
2) ve a [menu] datos / validacion...
condicion 1: formula
formula: -> =y(largo($a12),no(largo(i12))) <= OJO: mi separador de
argumentos es la coma :D
[boton] formato... -> pon algun formato [trama] 'llamativo' [p.e. fondo de
la celda en color rojo/amarillo/...]
-> cuando el usuario introduzca una fecha en la columna 'A' [filas 12 a 26]
mientras NO rellene las columnas 'I:J' [misma fila de la fecha] estas
permaneceran del color... [el que le apliques] :))

pros: te ahorras los codigos [probablemente 'desgastantes' ?]
cons: si copias desde otro rango SOBRE las celdas 'validadas'... perderas las
validaciones aplicadas :-((

si cualquier duda [o prefieres el uso de codigos]... comentas ?
saludos,
hector.

p.d. OJO: con la instruccion que usas: -> Application.EnableEvents = False
si no la devuelves a 'True'... los eventos ya no seran 'detectados' [al menos
en esa sesion de excel] :-((

__ la consulta original __
... en una hoja... tengo... cuentas de gastos, por ejemplo
... A12... A26 se deben de poner las fechas en que se hicieron los gastos
esto es variable a como puede ser una fecha pueden ser 2,3,4,8 etc. luego
tengo
... desde la I12 a la I26... se debe digitar lo que corresponde al objeto edl
gasto de ese dia
... otra columna que... s el presupuesto esa va desde J12 hasta J26.
... deseo... obligar al usuario rellenar los cmpos correspondientes
... por ejemplo si... pongo una fecha en... A12, en la celda I12 y J12 debo de
obligar a completar los campos
y si no que no me deje continuar.

Tengo un codigo mas o menos algo asi:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
With Range("A12")
If .Value = <> " "Then
MsgBox "Debe Registrar el objeto del gasto"
MsgBox "Debe Registrar el tipo de presupuesto"
.Select
End If
End With
End sub
... con esto lo unico que logro es mandar los mensajes de advertencia y nada
mas : (




Hola Hector Miguel, la verdad que no logro comprender lo que explicas aqui pero de alguna manera creo que lo que expones es lo que estoy buscando...podrias explicar como hacerlo pero como para que un tonto lo comprenda?
Es que yo tambien necesito alertar al usuario que "ha completado unas celdas de la fila pero ha omotido otra muy importante".
He probado con macros pero consumen mucha memoria para la maquina prehistorica que tenemos en el trabajo y es super complicado de entender para nosotros.
Mil gracias de antemano!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida