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: sobrescribir el valor de la columna B cuando el valor de la columna A es mayor
Este tutorial de Excel explica cómo escribir una macro (con capturas de pantalla e instrucciones paso a paso) para sobrescribir un valor en una columna cuando otro valor es mayor en Excel 2003 y versiones anteriores.
Problema: en Microsoft Excel 2003/XP/2000/97, tengo una hoja de cálculo con una lista actualizada regularmente de precios de acciones en la columna A descargada de la web. En la columna B, quiero registrar (automáticamente) que se ha alcanzado el precio máximo por acción. Entonces, quiero que la columna B aumente al valor de la columna A, pero solo si la columna A> columna B.
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, las cotizaciones diarias se almacenan en la columna A y los precios máximos se almacenan en la columna B.
Ponemos un botón en la hoja de trabajo que, al hacer clic, actualizará el valor en la columna B si el valor correspondiente en la columna A es mayor. Cuando la macro esté completa, aparecerá el siguiente mensaje.
Para ver la macro, presione Alt+F11 y haga doble clic en el módulo llamado Módulo1 en la ventana izquierda.
Si la macro necesita examinar más de las primeras 200 filas en la hoja de cálculo, es posible que deba modificar la variable Lrows.
codigo macro
Este código de macro se ve así:
Sub UpdateHighestPrices() Dim LLoop As Integer Dim Lrows As Integer Dim LQuote As String Dim LHighestVal As String 'Update first 200 rows in spreadsheet with highest prices Lrows = 200 LLoop = 2 'Check first 200 rows in spreadsheet While LLoop <= Lrows LQuote = "A" & CStr(LLoop) LHighestVal = "B" & CStr(LLoop) 'Update value in column b, if value in column B is higher If Range(LQuote).Value > Range(LHighestVal).Value Then Range(LHighestVal).Value = Range(LQuote).Value End If LLoop = LLoop + 1 Wend MsgBox "The highest prices have been updated." End Sub