Excel - Modificar celda sin borrar la fórmula

 
Vista:

Modificar celda sin borrar la fórmula

Publicado por Mariano Ramirez (1 intervención) el 12/04/2020 05:03:16
Hola, muy buenas noches! Tengo un problema que me esta matando la cabeza y no puedo solucionar, si me podrían ayudar, se los agradecería!

Tengo 6 celdas (supongamos, la celda E3, E4, E5, E6, E7 y E8), todas ellas con el numero 0.

Lo que necesito es modificar una sola de esas 6 celdas, y posteriormente modificar otra haciendo que la que modifique en primera instancia, vuelva a (0)

Supongamos que tengo:

E2=0
E3=0
E4=0
E5=0
E6=0
E7=0

Cambio el valor de E3:

E2=0
E3=236
E4=0
E5=0
E6=0
E7=0

Cuando cambio el valor de E6:

E2=0
E3=236
E4=0
E5=0
E6=145
E7=0

Necesito que automaticamente E3 vuelva a 0

EL PROBLEMA: Si pongo una formula en alguna de las celdas, cuando modique alguna celda, inevitablemente tengo que borrar la formula, y no quiero eso.

Como se soluciona ESTO? :'(
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Modificar celda sin borrar la fórmula

Publicado por Antoni Masana (2477 intervenciones) el 12/04/2020 12:42:47
Pon esta macro en la hoja:

Esta macro se ejecuta cada vez que modifique una celda de la hoja donde la pongas.
Si la celda modificada esta dentro del rango E3:E8 pone las restantes a CERO.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Col As Long, Fil As Long, Num As Byte, a As Byte
 
    Fil = Target.Row
    Col = Target.Column
 
    If Col = 5 Then
       If Fil >= 3 And Fil <= 8 Then
          Application.EnableEvents = False
          For a = 3 To 8
              If a <> Fil Then Cells(a, "E") = 0
          Next
          Application.EnableEvents = True
       End If
    End If
End Sub

Por supuesto tendrás que adaptarla a tu are de datos.
Si la columna o la fila es superior a 255 cambia BYTE por INTEGER y si es superior a 32768 cámbialo por LONG.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar