ARRAIGOS EN VBA EXCEL (INTRODUCCION CON MI DESAYUNO)

Estos días he tenido una carga importante de trabajo (¡yey, dinero!) y mis porciones de desayuno han bajado a comparación de mi necesidad de comer calorías (papiiiitas). Combinando una breve reseña de que frutas comer con la opción de como enseñar variables con arraigos a mis alumnos de Excel ha nacido para mí una revelación.

Para Excel, un arraigo es una variable que tiene múltiples opciones entre las cuales escoger (como yo y mi desayuno) todas ellas depositadas dentro del mismo nombre y solo identificadas por un numero de índice.

La nomenclatura es: MiVariable(n)

Donde MiVariables es una variable a nuestra elección y n es el número de opciones depositada en la variable.

Sabiendo que tengo 6 opciones para escoger, voy a crear una variable con un arraigo de 6 en mi código de VBA, el cual queda así.

Sub arraigo_desayuno()
 Dim MiDesayuno(6) As Variant
 End Sub

Nota que he designado que la variable sea del tipo Variant, esto porque un arraigo no puede ser del tipo String (o texto) y para dar mayor flexibilidad ya que Variant conlleva distintos tipos de datos.

Sub arraigo_desayuno()

Dim MiDesayuno(6) As Variant

    MiDesayuno(1) = Worksheets("Desayuno").Range("B3").Value

    MiDesayuno(2) = Worksheets("Desayuno").Range("B4").Value

    MiDesayuno(3) = Worksheets("Desayuno").Range("B5").Value

    MiDesayuno(4) = Worksheets("Desayuno").Range("B6").Value

    MiDesayuno(5) = Worksheets("Desayuno").Range("B7").Value

    MiDesayuno(6) = Worksheets("Desayuno").Range("B8").Value

End Sub

Ahora, con el código de arriba estoy designando un valor a cada uno de mis arraigos, esto lo hare porque el siguiente paso será escoger una fruta mediante una inputbox y comprobar que funciona con un msgbox que me dirá que fruta escogí.

Sub arraigo_desayuno()

Dim MiDesayuno(6) As Variant

Dim seleccion As Integer

    MiDesayuno(1) = Worksheets("Desayuno").Range("B3").Value

    MiDesayuno(2) = Worksheets("Desayuno").Range("B4").Value

    MiDesayuno(3) = Worksheets("Desayuno").Range("B5").Value

    MiDesayuno(4) = Worksheets("Desayuno").Range("B6").Value

    MiDesayuno(5) = Worksheets("Desayuno").Range("B7").Value

    MiDesayuno(6) = Worksheets("Desayuno").Range("B8").Value

seleccion = InputBox("Seleccionar numero de fruta", "mi desayuno")

MsgBox "usted a seleccionado " & MiDesayuno(seleccion), vbOKOnly, "Que escogi"

End Sub

¡Listo! Mi arraigo funciona a la perfección, con lo que me he ahorrado un sinfín de if´s y msgbox, pero aun lo podría hacer mejor. Si en lugar de designar por default un valor a mi arraigo lo quiero hacer mas inteligente puedo usar el siguiente código.

Sub arraigo_desayuno_2()

Dim MiDesayuno2() As Variant

Dim rng, i As Integer

    Worksheets("desayuno").Activate

    rng = WorksheetFunction.CountA(Range("B3:B1000000"))

    ReDim MiDesayuno2(rng) As Variant

        For i = 1 To rng

            MiDesayuno2(i) = Cells(i + 2, 2).Value

        Next i

End Sub

Nota como al principio solo le declaro el paréntesis () sin ningún valor y después usando la función ReDim vuelo a actualizar la variable para designarle el largo del numero de elementos, así si tengo más o menos fruta podre tener una selección mejor sin necesidad de volver a definir el largo de mi arraigo.

Sub arraigo_desayuno_2()

Dim MiDesayuno2() As Variant

Dim rng, i, seleccion As Integer

    Worksheets("desayuno").Activate

    rng = WorksheetFunction.CountA(Range("B3:B1000000"))

    ReDim MiDesayuno2(rng) As Variant

        For i = 1 To rng

            MiDesayuno2(i) = Cells(i + 2, 2).Value

        Next i

seleccion = InputBox("Seleccionar numero de fruta", "mi desayuno")

MsgBox "usted a seleccionado " & MiDesayuno2(seleccion), vbOKOnly, "Que escogi"

End Sub

¡Los arraigos son las cosas mas CUTE que encontraras con el manejo de VBA! Son fáciles y extremadamente dinámicos. Mi ejercicio es mucho mas largo que eso, pero se los enseño luego que me tengo que seguir apurando que papi necesita zapatos nuevos (ojos de $$$ aquí).

Comparte tu experiencia y cualquier duda ya sabes, caja de comentarios.

ARRAIGOS EN VBA EXCEL (INTRODUCCION CON MI DESAYUNO)

Un comentario en «ARRAIGOS EN VBA EXCEL (INTRODUCCION CON MI DESAYUNO)»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll hacia arriba