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