MS Excel 2003: actualice todas las fórmulas para hacer referencia a los datos en una fila específica

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

MS Excel 2003: actualice todas las fórmulas para hacer referencia a los datos en una fila específica

Este tutorial de Excel le muestra cómo escribir una macro para actualizar todas las fórmulas para hacer referencia a datos en una fila específica en Excel 2003 y versiones anteriores (con capturas de pantalla e instrucciones paso a paso).

P: En Microsoft Excel 2003/XP/2000/97, quiero crear un botón de macro que, al hacer clic, actualice todas las fórmulas para hacer referencia a los datos en una fila específica. ¿Cómo puedo hacer esto?

R: Esto se puede hacer con macros.

Veamos un ejemplo.

Descargue la hoja de cálculo de Excel (que se muestra a continuación)

En nuestra hoja de cálculo, tenemos dos tablas llamadas tabla y datos. En la hoja de trabajo llamada “Datos”, ponemos la información en las filas 2 a 6. Esta será la información a la que hacen referencia todas las fórmulas en la hoja de cálculo.

La hoja llamada Formulario es donde se encuentran las fórmulas. Cada celda con un borde rojo contiene una fórmula que hace referencia a los datos de la hoja de datos.

Ponemos un botón en el formulario que, al hacer clic, solicitará el número de fila al que se referirán todas las fórmulas.

En nuestro ejemplo, elegimos que todas las fórmulas hicieran referencia a los datos de la fila 3 de la tabla de datos.

La macro reemplazará todas las fórmulas en la hoja del formulario. Una vez completado, verá aparecer el siguiente cuadro de mensaje:

Ahora, cuando regrese a la hoja de cálculo, puede ver que todas las fórmulas ahora se refieren a la fila 3 en la hoja de datos.

Para ver la macro, presione Alt+F11 y haga doble clic en el módulo llamado Módulo1 en la ventana izquierda.

codigo macro

Este código de macro se ve así:

Sub UpdateFormulas()

   Dim LRowNumber As Long
   LRowNumber = InputBox("Please enter the row number to update the formulas.")

   Sheets("Form").Select

   'All following code will copy a formula into the destination if the source
   'has a value. If the source does not have a value, it will copy a blank to
   'the destination.

   'Item #1
   Range("F7").Select
   If IsEmpty(Range("Data!A" & LRowNumber).Value) Then
      ActiveCell.Value = ""
   Else
      ActiveCell.Formula = "=Data!A" & LRowNumber
   End If

   'Item #2
   Range("F9").Select
   If IsEmpty(Range("Data!B" & LRowNumber).Value) Then
      ActiveCell.Value = ""
   Else
      ActiveCell.Formula = "=Data!B" & LRowNumber
   End If

   'Item #3
   Range("J10").Select
   If IsEmpty(Range("Data!C" & LRowNumber).Value) Then
      ActiveCell.Value = ""
   Else
      ActiveCell.Formula = "=Data!C" & LRowNumber
   End If

   'Item #4
   Range("H11").Select
   If IsEmpty(Range("Data!D" & LRowNumber).Value) Then
      ActiveCell.Value = ""
   Else
      ActiveCell.Formula = "=Data!D" & LRowNumber
   End If

   'Item #5
   Range("D11").Select
   If IsEmpty(Range("Data!E" & LRowNumber).Value) Then
      ActiveCell.Value = ""
   Else
      ActiveCell.Formula = "=Data!E" & LRowNumber
   End If

   'Reposition back on item #1
   Range("F7").Select

   MsgBox ("The formulas were successfully updated to row " & LRowNumber & ".")

End Sub
(Visited 6 times, 1 visits today)