RESTA o suma y saber de donde jalar cantidades MACROS Vb

Tengo un archivo el cual necesito que me ayude hacer los sig.

Quisiera poner un numero en O86 y este me reste el numero en donde haya cantidades entre la P86:Q86 una vez que busque valor para restar, entonces el numero que puse en O86 me lo multiplique por 12 y me lo coloque en la celda O90.

Paso 1

paso 2

paso 3

1 Respuesta

Respuesta
1

Pon la siguiente macro en los eventos de worksheet

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("O86")) Is Nothing Then
        [P86] = [P86] - Target - Value
        [Q86] = [Q86] - Target - Value
        [O90] = Target.Value * 12
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Recuerda valorar la respuesta

hola dante, si funciona lo que me mandaste, pero me resta cantidades de las dos celdas:

[P86] = [P86] - Target - Value
[Q86] = [Q86] - Target - Value

lo que buscaba era  que reste entre esos dos donde haya cantidad.

osea que si tengo 5 en P86 y 6 en Q86 al poner 2 en O86 este me reste esos dos en cualquera de esos dos, no quitando 2 en cada uno... gracias a ver si eso se pudeira,

Pero entonces me puedes poner los resultados que esperas, no entiendo.

Si pones 2 en O86

Tienes 5 en P86

Tienes 6 en Q86

Cuál es el resultado que esperas en:

O86 = ?

P86 = ?

Q86 = ? 

Pero entonces me puedes poner los resultados que esperas, no entiendo.

Si pones 2 en O86

Tienes 5 en P86 ( QUE RESTE AQUÍ) O

Tienes 6 en Q86( RESTE AQUÍ) siempre y cuando hayan cantidades, que busque donde hay cantidad para restar

Cuál es el resultado que esperas en:

O86 = ?

P86 = ?

Q86 = ? 

Así quedaría maso menos:

Si pones 2 en O86

Tienes 5 en P86

Tienes 6 en Q86

Cuál es el resultado que esperas en:

O86 = 2

P86 = 3

Q86 = 6

O96 = 24

O seria así

Si pones 2 en O86

Tienes 5 en P86

Tienes 6 en Q86

Cuál es el resultado que esperas en:

O86 = 2

P86 = 5

Q86 = 4

O96 = 24

Pero me tienes que decir en cuál de las 2 se hace la resta

Qué tengo que verificar para restar en P86 ó en Q86, en tu ejemplo no me estás diciendo en cuál de las 2 hacer la resta. Tienes que ser más claro con el ejemplo

En cualquiera de los dos se podría (donde haya cantidad)

Por ejemplo: si hay cantidad 2 en P86 y 0 en Q86 pues que reste en P86 porque haya hay donde hacer la resta, y vicersa, si hubiese cantidad en los ambos pues en cualquiera ya sea en P86 o en Q86 que reste la cantidad que se ponga en O86 siempre y cuando haya valor para poder hacer la resta...

Te anexo la macro

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("O86")) Is Nothing Then
        If [P86] >= Target.Value Then
            [P86] = [P86] - Target - Value
        ElseIf [Q86] >= Target.Value Then
            [Q86] = [Q86] - Target - Value
        End If
        [O90] = Target.Value * 12
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas