Excel Avanzado

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

Excel Avanzado

FOR en BVA para la venta de terrenos de la inmobiliaria LOS PORTALES

| 1 comentario

FOR en BVA para la venta de terrenos de la inmobiliaria LOS PORTALES

En este caso, se utilizará la Estructura For… Next para completar una base de datos acerca de los terrenos de la inmobiliaria LOS PORTALES. Debido a que se requiere calcular para cada terreno ciertos datos, cuyo procedimiento se repite en cada terreno, la estructura For… Next es la más recomendable ya que repite instrucciones según se haya indicado.

A continuación se presenta de forma general la estructura:

For X = X0 To Xz Step B

Instrucción 1

Instrucción 2

Instrucción 3

Next

Donde X= X0 To Xz, nos indica que la variable X toma valores desde X0 inicial hasta el Xz valor final. En cada una de estas variables se repetirán las instrucciones propuestas.

Step B, es el orden que tomaran los valores de X. Si B= 1, quiere decir que los valores a ser tomados serán de forma ascenderte de uno en uno; si B= -1, los valores serán de forma descendente de uno en uno, etc.

Las Instrucciones son las órdenes que deseamos que sigan los datos.

Por último, para concluir con la estructura, se coloca “Next”.

De esta manera, en nuestro ejemplo, para realizar el llenado de la plantilla, crearemos un ComandButton con la siguiente Macro:

Private Sub CommandButton1_Click()

Ult = Cells(Rows.Count, 1).End(xlUp).Row

For x = 5 To Ult Step 1

Cells(x, 5).Value = Cells(x, 3).Value + Cells(x, 4).Value

dorm = Cells(x, 3).Value

Select Case dorm

Case 0 To 120

Cells(x, 6).Value = "2"

Case 121 To 450

Cells(x, 6).Value = "3"

End Select

bath = Cells(x, 6).Value

Select Case bath

Case 0 To 2

Cells(x, 7).Value = "3"

Case 3 To 4

Cells(x, 7).Value = "4"

End Select

Cells(x, 8).Value = Cells(x, 5).Value * 4112

Cells(x, 9).Value = Cells(x, 8).Value / 2.79

Cells(x, 10).Value = Cells(x, 8).Value * 0.02

Cells(x, 11).Value = Cells(x, 8).Value * 0.1

Cells(x, 12).Value = Cells(x, 8).Value - Cells(x, 10).Value - Cells(x, 11)

Cells(x, 13).Value = (1 - 0.07) * Cells(x, 8).Value

Next

End Sub

Lo que se hizo en esta macro fue averiguar la cantidad total de columnas a través de la variable “Ult”.

Luego, en la estructura For, indicamos que nuestra variable a calcular “x” tiene un valor inicial de 5 (ya que a partir de esa fila comenzamos con los cálculos) y un valor final igual a “Ult” (previamente calculado).

A continuación, se presentan las instrucciones. Cada una será útil para el llenado de cada item. En total son 9 instrucciones que se deben repetir en cada una de las 16 filas que representan los 16 departamentos. Es por ello, la importancia de la estructura For…Next ya simplifica la repetición individual de cada fila y la hace de manera global.

Finalmente el Macros concluye con el término Next, con los cual estamos cerrando la estructura propuesta inicialmente.

A continuación se adjunta el ejemplo mencionado lineas arriba

FOR en VBA para la venta de terrenos

Publicado por John Manuel Zapana Solorzano

Un comentario

  1. El presente ejemplo lo hacia funcionar con el botón "calcular" pero no notaba los resultados, tenia que borrar varias celdas que tenia ya calculado para después ver que hacia esta macro.

    Entonces le he agregado un botón "limpiar" copiando la misma macro "calcular" pero modificando todas los resultado a que sean igual a "" (blanco), así

    Sub Botón3_Haga_clic_en()
    Ult = Cells(Rows.Count, 1).End(xlUp).Row
    For x = 5 To Ult Step 1
    Cells(x, 8).Value = ""
    Cells(x, 9).Value = ""
    Cells(x, 10).Value = ""
    Cells(x, 11).Value = ""
    Cells(x, 12).Value = ""
    Cells(x, 13).Value = ""
    Next
    End Sub

    Ahora, estando la tabla con las casillas de salida "en blanco" noto lo que hace la macro y la rapidez con lo que lo hace.

Deja una respuesta

Los campos requeridos estan marcados con *.