Restar, pero no sumar

18/01/2004 - 03:40 por Jesus | Informe spam
Hola a todos

Desearía saber si hay una formula para hacer lo siguiente:
Tengo en las columnas B, C, D, E y F una serie de números ( aunque algunas
pueden estar vacías), y en la columna G la suma. En la siguiente columna (
H ) tengo que poder introducir un número, pero que si cualquier valor de las
5 columnas disminuye, también lo haga este número (solo hasta cero, no
negativo) pero que si aumenta cualquiera de estas 5 columnas, no lo haga el
de la H.
Si no existe fórmula, no importa que sea en VBA.

Mis agradecimientos de antemano, un saludo
Jesús

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
18/01/2004 - 07:55 | Informe spam
hola, Jesus !

... si hay una formula para hacer lo siguiente:
... en las columnas B, C, D, E y F ... numeros ... en la columna G la suma.
... siguiente columna (H) ... introducir un numero
... si cualquier valor de las 5 columnas disminuye, tambien lo haga este numero (solo hasta cero, no negativo)
... si aumenta cualquiera de estas 5 columnas, no lo haga el de la H. Si no existe formula, no importa que sea en VBA.



no creo que pueda 'monitorearse' una celda 'sobre si-misma' sin apoyo de macros ['concretamente', eventos] :)
[segun como lo veo] es necesario llevar un 'registro' de valores [antes, despues y 'diferencia'] para:
- la celda que se modifique [dentro de las 5 columnas]
=>se puede capturar el 'antes' con un '_SelectionChange' y el 'despues' con un '_Change'<- la diferencia [entre lo que 'habia' y lo que 'quedo']
- el valor de la columna 'h' [para 'evitar' que 'baje' a menos cero o que 'trate' de aumentarse]
- ['adicionalmente'] EVITAR selecciones 'multiples' [dentro del rango de las 5 columnas]
=>el evento '_SelectionChange' NO se 're-dispara' y no se podria 'registrar' el valor 'anterior' de la/s celda/s<= :((

para evitar el uso de variables 'estaticas', sugiero usar variables 'publicas' para:
- registrar el valor 'anterior' [de la celda dentro de las 5 columnas] =>en el evento '_SelectionChange'<- 'calcular' el cambio [despues de modificar su valor] =>por medio del evento '_Change'<y algunas 'constantes' para:
- el rango [dentro de las 5 columnas] de celdas que podrian 'afectar' el valor de la columna 'h'
[en el ejemplo estoy 'suponiendo' que fuera 'B2:F24' =>cambialo por el 'real'<=] ;)
- la/s letra/s de la columna 'afectable' ['h' o la que necesites despues]
[+] algunos 'trucos' para evitar las selecciones 'multiples'

espero que te sean de utilidad :)
saludos,
hector.
_____ en un modulo de codigo 'normal' _____
Public DatoAnterior As Double, Cambio As Double
Public Const Entradas As String = "b2:f24"
Public Const ColTrack As String = "h"
_____ en el modulo de codigo de 'la hoja' _____
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range(Entradas)) Is Nothing Then Exit Sub
If Selection.Cells.Count > 1 Then
Application.EnableEvents = False
ActiveCell.Select
Application.EnableEvents = True
End If
If Intersect(ActiveCell, Range(Entradas)) Is Nothing Then Exit Sub
DatoAnterior = ActiveCell
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range(Entradas)) Is Nothing Then Exit Sub
Cambio = Target - DatoAnterior
If Cambio >= 0 Then Exit Sub
With Range(ColTrack & Target.Row)
If .Value + Cambio <= 0 Then .Clear Else .Value = .Value + Cambio
End With
End Sub
Respuesta Responder a este mensaje
#2 Jesus
18/01/2004 - 16:20 | Informe spam
Muchas gracias Héctor, funcionó de maravilla.

Un saludo
Jesús
Respuesta Responder a este mensaje
#3 Jesus
18/01/2004 - 20:19 | Informe spam
Hola Héctor, creo que me adelanté al decirte que iba de maravilla.
La verdad es que es perfecto si introduzco los números (en las columnas B a
F) directamente en las celdas, pero es que se modifican por la acción de una
macro, por código.
Hay forma de modificarlo? Gracias

Un saludo
Jesús
Respuesta Responder a este mensaje
#4 Héctor Miguel
18/01/2004 - 23:56 | Informe spam
hola, Jesus !

... los numeros (en las columnas B a F) ... se modifican por ... una macro ... Hay forma de modificarlo?



aunque no mencionaste la forma en que se introducen los datos... 'me lo temia' :((
no creo que haya problema... si transcribes el codigo [al menos 'la parte'] que 'afecta' 'B' a 'F' :))

saludos,
hector.
Respuesta Responder a este mensaje
#5 Jesus
19/01/2004 - 22:27 | Informe spam
Hola Héctor, ya disculparás, pero creo que me he vuelto a precipitar.
Lo que me pasó es que probé en una hoja (de las 4 en las que quiero
ponerlo), quitándole la protección, y no 'funcionaba'. Y el problema reside
en eso, en que con solo una hoja que esté protegida, o me 'da' algún error,
o simplemente no 'funciona'. Pero deben estar protegidas.
Lo he probado todo ( lo poco que yo puedo probar) y no consigo 'dar con el
chiste'.
De todas formas muchas gracias por tu tiempo.

Un saludo
Jesús
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida