example1

Rangos en Excel VBA : Cómo Usar los Rangos en VBA

Todo usuario d’Excel est familiarisé avec la sélection d’une gamme de celdas – al pulsar SHIFT + Click, CTRL + Click, ou arrastrando el ratón sobre un conjunto de celdas.

¿Pero cómo selecciona uno un range en VBA ? En este artículo, le guiaré sobre cómo seleccionar un range de celdas y activar una celda en particulier de ese range. También le mostraré ejemplos prácticos sobre cómo hacer esto en sus libros de Excel. Si hace tiempo que no utiliza Excel y quiere dar un repaso a los conceptos básicos el suivant curso le será de ayuda.

¿Qué es un Rango?

Un rango, como ya habrá adivinado, se refiere a una celda o conjunto de celdas. Un range puede ser de tres tipos distintos :

Cada celda seleccionada del range debe estar dentro de la misma hoja de cálculo. A partir d’aujourd’hui, Excel no soporta ranges multidimensionales (pe rangos distribuidos en varias hojas de cálculo).

Utilisez beaucoup la fonction Range en su programación VBA vous permet de sélectionner une celda ou une gamme de celdas facilement et sans esfuerzo.

Sintaxis

La sintaxis básica del comando de la gamme VBA est la suivante :

Range(Cell 1. Cell 2)

Dondé

Cell1 (obligatoire): es la celda/rango actual sobre la que actúa. Debe ser un nombre de celda específico (« A1 ») ou un range de celdas (« A1: A10 »).

Cell2 (facultatif): la esquina superior izquierda o lower derecha de la celda del rango a seleccionar.

Gamme también puede aceptar cadenas, no sólo celdas y ranges :

Range(“SalesVolume”)

Esto selecionará celdas que tienen el valor de « SalesVolume ».

Incluso puede anidar un range dentro de otro y seleccionar cadenas específicas :

Plage (« A1: A20 », Plage (« Volume des ventes »))

Esto se referirá a todas las celdas in el range A1:A20 que tengan el valor “SalesVolume”

Para ver cómo funciona, echemos un vistazo a algunos ejemplos :

Exemple 1 : Insertion d’un courage dans un rang sélectionné

Digamos que queremos rellenar las primeras diez filas en la columna A con el valor « Hello ». Para hacer esto, añadiremos el siguiente código a nuestra macro VBA :

Feuilles de calcul (« Feuille1 »).Plage (« A1: A10 »).Valeur = « Bonjour »

Dondé,

Worksheets(“Sheet1”) = Nombre de la feuille active

.Range(“A1:A10”) = Rango de celdas a seleccionar

.Value = « Hello » = Valor a ser insertado en las celdas.

Le résultat :

exemple1résultat

Podemos conseguir el mismo resultado escribiendo lo suivant:

Worksheets(“Sheet1”).Range(“A1”,”A10”).Value = “Hello”

Remarque : La parte ‘Worksheet (« Sheet1 »)’ n’est pas vraiment obligatoire si elle est trabajando avec une seule feuille, mais elle est nécessaire dans un livre avec plusieurs feuilles.

¿Confondido ? Consultez ce cursus complet sur la programmation en Excel avec des macros pour clarifier nos dudas.

Exemple 2 : Insérer une formule dans un rang de Celdas

Supongamos que tiene un rango de valores en una hoja de cálculo como esta :

exemple2

(Realmente hemos rellenado esta hoja usando el método .Range como se muestra arriba).

Podemos utilise la formule suivante pour calculer la somme de tous les valeurs :

Range(“C1”).Formula = “=sum(A1:B10)”
example2range

Dése cuenta cómo usamos .Formula en lugar de .Value.

Le résultat :

exemple2résultat

Exemple 3 : Cambiar el Formato en un Rango de Celdas

La función Range no sólo es útil para añadir fórmulas e insertar valores. Puede también ser una herramienta útil para cambiar los valores de celdas específicas.

Aquí cambiaremos el formato de un rango de celdas a Négrita. Esta es la hoja original :

exemple3

La formule que usaremos :

Range(Cells(3,3), Cells(5,3)).Font.Bold = True

Voici le résultat :

exemple3résultat

Lo important a destacar aquí es cómo hemos usado los dos rangeos de celdas para seleccionar solo las celdas C3:C5. El primer range de celdas (Cellules(3,3)) especifica que solo las celdas de la tercera columna se seleccionarán. Si quisiéramos seleccionar la primera columna escribiríamos Cells(1,1).

El segundo rango especifica las filas. Va desde el mayor número de celda al más pequeño ((5,3) no (3,5)).

¿Utiliza Excel pero a un niveau avancé ? Con este curso aprenderás a sacarle todo el partido a Excel.

Exemple 4 : Usando el Método Offset

Autre forme de sélection d’une gamme et utilisation de la méthode Offset. La sintaxis básica es de esta forma :

Range(“A1”).Offset(2,3).Value = 4

Esto cambiará el valor de las dos celdas de arriba, y tres celdas a la derecha de A1 a 4.

Usemoslo en una hoja de cálculo y veamos cuál es el resultado :

Range(“B1”).Offset(2,3).Value = 4

Esto hace que la celda E3 (dos celdas abajo, tres a la derecha – offset(2,3)) = 4

exemple4

La méthode Offset est particulièrement utile avec des variables.

Creemos un pequeño programa que rellene un range de filas y columnas con todos los números impares del 1 al 50 .

Sub macro_1()
Num = 1
   For Row = 0 To 4
       For Col = 0 To 4
            Range(“A1”).Offset(Row, Col).Value = Num
            Num = Num + 2
       Next Col
    Next Row
End Sub

Aquí, empezamos desde el número 1 y nos referiremos a las primeras 5 filas y columnas (recuerde que Excel cuenta a partir de 0). En précisant une fila ou une colonne en béton, utilisez les variables avec Offset. También hemos incrementado el número en 2 con un bucle para crear una progresión.

El resultado tiene este aspecto:

exemple4résultat

Hemos puesto este ejemplo para mostrarle lo útil que el comando Range puede ser.

Además de todas estas características, puede también usar Range para seleccionar una celda determinada :

Range(“A1”).Select

O para activar una un range específico:

Range(“A1:A20”).Activate

Recurrirá a estas funciones regularmente en su programación VBA.