Lección 4. Selección de celdas y rangos. Uso de variables y asignación de valores a una celda.

Lección 4. Selección de celdas y rangos. Uso de variables y asignación de valores a una celda.

En esta cuarta lección, vas a aprender a seleccionar celdas y rangos, a usar distintos tipos de variables y a asignarle valores a las mismas. Comenzamos!

Para seleccionar una sola celda, la manera más sencilla es utilizando el comando:

 

Cells(x,y).Select

 

Donde x e y son las coordenadas de la celda hacia donde queremos apuntar. Por ejemplo, si queremos seleccionar la celda B4, escribiremos:

 

Cells(4,2).Select

 

O también:

 

Cells(4,"B").Select

 

Para seleccionar un rango de celdas, escribimos:

 

Range(Cells(a,b),Cells(c,d)).Select

 

Donde a y b son las coordenadas de la primera celda del rango, y c y d las coordenadas de la última celda del rango. Por ejemplo, si queremos seleccionar el rango desde B4 hasta C5, escribiremos:

 

Range(Cells(4,2),Cells(5,3)).Select

 

O también:

 

Range("B4:C5").Select

 

El primer método es más complejo y lo usaremos para rangos de celdas variables. La última forma es más sencilla y la usaremos para rangos fijos. Tranquilo que lo veremos más adelante, todo a su debido tiempo.

Por otro lado, te voy a enseñar los dos tipos de variables más utilizados, integer y string.

Las variables integer son de tipo entero y se utilizan para almacenar números, mientras que las string son de tipo cadena de texto y se usan para almacenar texto.

Vamos a digerir todo esto con un ejemplo.

En primer lugar, crea un libro nuevo de Excel, abre el editor VBA, inserta un módulo y escribe lo siguiente:

 

Macro 1

Sub Leccion4_1()

'Macro que copia el contenido de las celdas A1 y A2, en F4 y F5

Application.ScreenUpdating = False

Dim numero As Integer

Dim texto As String

numero = Cells(1, 1).Value

texto = Cells(2, 1).Value

Cells(4, 6).Value = numero

Cells(5, 6).Value = texto

Application.ScreenUpdating = True

End Sub

 

Lo primero que hemos hecho en esta macro es desactivar la actualización de la pantalla como vimos en la lección anterior.

A continuación, declaramos las variables. Esto se hace de la siguiente manera:

 

Dim nombredelavariable as tipovariable

 

En nuestro caso, declaramos la variable numero como entero y la variable texto como cadena de caracteres.

 

Dim numero as integer

Dim texto as string

 

En las dos siguientes líneas, asignamos el valor de las celdas A1 y A2 a las dos variables que acabamos de declarar.

 

numero = Cells(1, 1).Value

texto = Cells(2, 1).Value

 

Estos valores almacenados en las variables los vamos a traspasar a las celdas F4 y F5:

 

Cells(4, 6).Value = numero

Cells(5, 6).Value = texto

 

Por último, volvemos a activar el refresco de pantalla.

Vamos a crear una segunda macro para borrar las celdas F4 y F5. Inserta un nuevo módulo y escribe lo siguiente:

 

Macro 2

Sub Leccion4_2()

'Macro para borrar las celdas F4 y F5

Range("F4:F5").ClearContents

End Sub

 

Para borrar el contenido de una celda, usamos la característica ClearContents junto con la selección del rango:

 

Range("F4:F5").ClearContents

 

Ahora vamos a cerrar el editor VBA y creamos dos botones, uno con el nombre “Trasladar” asociado a la macro “Leccion4_1” y otro con el nombre “Borrar F4 y F5” asociado a la macro “Leccion4_2”.

Escribe en la celda A1 el número 8 y en A2 la palabra “perro”. Debería quedarte algo así.

 

 

Si pulsas el botón “Trasladar” verás como el contenido de A1 y A2 se copia en F4 y F5 utilizando las variables “numero” y “texto” que hemos creado.

 

 

Si pulsas el botón “Borrar F4 y F5” se borra el contenido de estas dos celdas y volvemos a la situación inicial.

Aunque en el ejemplo de hoy quería explicarte el funcionamiento de las variables, podíamos haber resuelto este ejercicio sin usar variables de la siguiente manera:

 

Macro 3

Sub Leccion4_3()

'Macro que copia el contenido de las celdas A1 y A2, en F4 y F5 (sin usar variables)

Application.ScreenUpdating = False

'Dim numero As Integer

'Dim texto As String

'numero = Cells(1, 1).Value

'texto = Cells(2, 1).Value

Cells(4, 6).Value = Cells(1, 1).Value

Cells(5, 6).Value = Cells(2, 1).Value

Application.ScreenUpdating = True

End Sub

 

Aquí asignamos el valor de la celda A1 directamente a la celda F4, y de la A2 a la F5 sin usar variables intermedias.

Si ejecutas la macro, verás que tienes el mismo resultado que con la macro “Leccion4_1”.

 

 

Date cuenta que he puesto el símbolo ' delante de los comandos que aparecían en la macro “Leccion4_1” que no quiero que se ejecuten. Los podía haber borrado, pero a veces, es útil colocarle la comilla y deshabilitarlo por si en un futuro nos puede hacer falta o si estamos depurando fallos de una macro, para ir aislando el código para poder identificar la parte del código que está mal.

Con esto llegamos al final de la cuarta lección. Espero que te esté gustando el curso y que me plantees cualquier duda que te surja. También puedes proponerme macros que te interese desarrollar y las voy incluyendo en el temario, soy todo oídos. Nos vemos en el próximo capítulo.

 


Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.