¿Cómo hacer que una fórmula funcione en el fondo de una celda en Mircosoft Excel y permitir que un usuario ingrese datos?

¿Cómo hacer que una fórmula funcione en el fondo de una celda en Mircosoft Excel y permitir que un usuario ingrese datos?

Estoy intentando crear una hoja de cálculo que recopile los datos de varias celdas.

Básicamente, quiero que la celda A1refleje Sheet1la Sheet2misma información ingresada por el usuario sin eliminar la fórmula cuando se ingresan datos.

Necesito que los usuarios puedan ingresar datos en estas celdas, pero al usar =Sheet2!A1o =Sheet1!A1estoy creando una referencia circular y también dejando que los usuarios puedan eliminar la fórmula.

¿Alguien puede recomendar una forma de resolver esto?

Respuesta1

No puede ingresar datos en una celda que contiene una fórmula y al mismo tiempo conservar la fórmula.

Una solución es hacer que el usuario ingrese datos en una celda diferente y luego haga referencia a esa celda en A1ambas hojas.

Respuesta2

No puedes hacerlo sin una Macro. Este código debería funcionar:

Private Sub Worksheet_Change(ByVal Target As Range)
    therow = 1
    thecolumn = 1
    Dim wks As Worksheet
    cellrow = Target.Row
    cellcolumn = Target.Column
    If (cellrow = therow And cellcolumn = thecolumn) Then
        Set wks = ThisWorkbook.Worksheets("Sheet2")
        wks.Cells(cellrow, cellcolumn) = Target.Value
    End If
End Sub

Abra Macros con ALT+ F11, haga doble clicHoja1en el lado izquierdo y pega el código en el lado derecho. Este código se ejecuta en Sheet 1, por lo que copia los cambios Sheet1 A1en Sheet2 A1.

Cada vez que hay un cambio en la hoja de trabajo se ejecuta esta macro. Comprueba si la celda cambiada está en la fila 1 y la columna 1 (celda A1) y luego copia el valor en la misma celda enHoja2.

Si desea comprobar los cambios deHoja2aHoja1además entonces:

  1. Haga doble clicHoja2en el lado izquierdo.
  2. Pega el código en el lado derecho.
  3. Cambie la línea Set wks = ThisWorkbook.Worksheets("Sheet2")para indicar el nuevo destino: Set wks = ThisWorkbook.Worksheets("Sheet1").

En este momento, esta macro usa las variablesLa filayla columnapara tomar la decisión de copiar el valor a la otra hoja de trabajo. Al principio se ponen a 1 en las líneas therow=1y thecolumn=1significa que estamos interesados ​​en la celda.A1. Y además verificamos si la celda modificada coincide con estos valores en la línea If (cellrow = therow And cellcolumn = thecolumn) Then.

Puedes modificar los valores para personalizarlo según tus necesidades, incluso comprobando una columna o fila completa, por ejemplo:

Cambiar la línea de verificación If (cellcolumn = thecolumn) Thencopiará los cambios que ocurran en la columna que tiene el mismo valor que la variable thecolumnsin importar qué fila sea.

Otro ejemplo:

Cambiar la línea de verificación If (cellcolumn > thecolumn) Thencopiará los cambios que ocurran en cualquier columna mayor que el valor de cualquier fila, thecolumnsin importar qué fila sea.

información relacionada