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!!!
 

Leer las respuestas

#1 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!

Preguntas similares