Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Conversión de fórmulas en valores

Conversión de fórmulas en valores

| 0 comments

Con este tipo de macro buscamos convertir los datos provenientes de formulas en valores fijos.

Estas son útiles por ejemplo en una situación en la que los datos los obtenemos de una función aleatoria y posteriormente lo queremos utilizar para otros procesos u otras funciones a realizar sin el temor a que puedan cambiar una vez obtenidas.

Ejemplo:Conversión de fórmulas en valores

El ejemplo que presentare es de una encuesta a 20 personas en donde aleatoriamente elegiremos su género y le preguntaremos cual es la colonia de hombre que más te gusta en el caso de que salga aleatoriamente un hombre y cual es la colonia de mujer en el caso que sea una mujer.

Es por ello que una vez obtenidas aleatoriamente el género de cada persona encuestada, nosotros vamos a querer obtener estos resultados fijos para luego ingresar las respuestas de cada persona.

Primero Elaboramos nuestra tabla de 20 personas encuestadas en donde en la columna de género ingresamos la siguiente fórmula:

=ELEGIR(ALEATORIO.ENTRE(1,2),”M”,”F”)

Esta formula nos devolverá las variables M(masculino) y F(femenino) de una forma aleatoria.

y en la columna pregunta se ingresará la siguiente fórmula:

=SI(B2=”M”,”¿Cuál es la colonia de hombre que más les gusta?”,”¿Cuál es la colonia de mujer que más les gusta?”)

Sin título

Es por ello que a partir de los datos aleatorios nosotros vamos a querer quedarnos con los datos obtenidos en la columna género, es decir la fórmula ingresada desaparecerá.

El código que utilizaremos es el siguiente:

Sub Macroejem()
Dim Rango As Range
Dim celda As Range
Select Case MsgBox(“NO se puede deshacer esta accion.” & “Desea guardar este libro?”, vbYesNoCancel)
Case Is = vbYes
ThisWorkbook.Save
Case Is = vbCancel
Exit Sub
End Select
Set Rango = Selection

For Each celda In Rango
If celda.HasFormula Then
celda.Formula = celda.Value
End If

Next celda
End Sub

Primero se declara las variables como range,  luego al comenzar con la macro aparecerá un cuadro preguntándonos si queremos guardar el documento antes de realizar la macro, ya que esta acción es irreversible.

Apareciendo el siguiente mensaje:

Sin título2

 

Luego se trabajará con el rango de celdas previamente seleccionado, y emplearemos la función Each para obtener el bucle leyendo cada celda de nuestro rango.

Así con la función if verificamos si cada celda tiene fórmula con la propiedad HasFormula, y si esta información es correcta, entonces pasará a convertir la propiedad de la celda que en este caso es Formula en su respectivo valor (value), como  se indica en el código propuesto.

Por: Andrea Mendoza Ames

Deja un comentario

Required fields are marked *.


Excel Avanzado located at , Lima, Perú . Reviewed by usuarios rated: 4.7 / 5