Formato condicional (resta de 2 celdas)

Solicitando de su apoyo nuevamente. Esta es mi pregunta.

Yo tecleo manualmente el valor de la celda "G7" que es 10

Pero al colocarle en la celda "E7" un valor, en este caso 2, este deberá restarlo a la celda "G7" quedando como resultado "8" en la celda "G7", sin que yo lo reste manualmente.

Nota: lo quiero hacer con formato condicional,

1 respuesta

Respuesta
1

. 19.01.17

Buenas noches,

Considerando que una celda puede tener un número ingresado O una fórmula que lo calcule, no ambas cosas, la única solución es por una rutina de VBA basada en un evento (cambio de la celda E7), como la que te comparto a continuación.

Para que funcione, activa el editor de Visual Basic (presiona Alt+F11) y en el panel de la izquierda busca la hoja donde quieres que esto ocurra. Da doble click sobre ella. (Otra forma de llegar a este punto es hacer click derecho sobre la solapa de esta hoja y elegir la opción "Ver Código)

Allí pega el siguiente procedimiento de VBA:

Private Sub Worksheet_Change(ByVal Target As Range)
CeldaResta = "E7" 'celda donde ingresar el valor a restar
CeldaFinal = "G7" 'indica la celda donde restar lo ingresado en celdaResta
'  
If UCase(Target.Address(False, False)) = UCase(CeldaResta) Then
    Range(CeldaFinal).Value = Range(CeldaFinal).Value - Range(CeldaResta).Value
End If
End Sub

Nota que, al principio del código, hay unas variables para que lo adaptes a tu archivo o las cambies si es que necesitaras que fuera en otro rango.

Finalmente, aclaro que un formato condicional sólo cambia formatos de celdas según alguna condición, pero NUNCA cambian el contenido de ella.

Espero que sea lo que buscabas -y, en tal caso, agradeceré que califiques mi contribución- o escribeme de nuevo aquí, si necesitas más apoyo con esto.

Saludos

Fernando

.

ampliando mi pregunta con mas datos, lo mismo de la anterior pero para toda la columna, que al teclear manualmente el valor de la celda "G7" que es 10, pero al colocarle en la celda "E7" un valor, en este caso 2, este deberá restarlo a la celda "G7" quedando como resultado "8" en la celda "G7", sin que yo lo reste manualmente:

el valor de la "G7 reste a la E7"

el valor de la "G8 reste a la E8"

el valor de la "G9 reste a la E9"

la "G10 con la E10" espero darme a entender, saludos

.

1000 disculpas!

Revisando mis pendientes, vi que había quedado esta repregunta tuya.

Si aun te sirviera, esta es la versión modificada para que haga aquella operación en cualquier fila del par de columnas que le indiques en las variables:

Private Sub Worksheet_Change(ByVal Target As Range)
ColuResta = "E" 'Columna donde ingresar el valor a restar
ColuFinal = "G" 'indica la Columna donde restar lo ingresado en ColuResta
'  
If Target.Column = Range(ColuResta & "1").Column Then
    Range(ColuFinal & Target.Row).Value = Range(ColuFinal & Target.Row).Value - Range(ColuResta & Target.Row).Value
End If
End Sub

Saludos

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas