Région actuelle VBA

Ce tutoriel expliquera comment utiliser la région actuelle dans VBA.

Les Région actuelle La propriété dans VBA est un moyen de sélectionner toutes les cellules contenues dans une plage avec lesquelles vous souhaiterez peut-être travailler. Tant que les cellules comprises dans la plage sont toutes consécutives ou se touchent, le Région actuelle sélectionnera chaque cellule de la région.

Syntaxe de la région actuelle

La syntaxe est très simple :

1 Plage("E11").CurrentRegion.Select

où vous spécifiez la cellule dont vous souhaitez sélectionner la région actuelle, puis utilisez le CurrentRegion.Select pour sélectionner la plage de cellules.

Obtention de la région actuelle

Considérez la feuille de travail suivante.

la sous-procédure suivante sélectionnerait toutes les cellules de la base de données

1234567 Sub FindCurrentRegion()Dim rng As Range'définit la plage sur la cellule E11Définir rng = Range("E11")'sélectionner la région actuellerng.CurrentRegion.SelectFin du sous-marin

Si nous exécutons la routine, toutes les cellules du Région actuelle de la cellule E11 sera sélectionné.

Si nous supprimons le contenu des cellules adjacentes et réexécutons la routine, ce qui suit sera sélectionné comme région actuelle.

Cependant, si nous supprimons encore plus de données, nous pourrions nous retrouver avec l'exemple ci-dessous pour la région actuelle de la cellule E11.

En remettant les informations dans D13, nous obtenons ce qui suit :

Les Région actuelle renvoie donc un autre gamme objet défini par la plus petite combinaison de colonnes et de lignes occupées qui entourent la plage que vous avez fournie.

Compter les lignes et les colonnes dans la région actuelle

On peut utiliser Région actuelle pour compter les lignes et les colonnes.

12345678910111213 Sub FindCurrentRegion()Dim rng As RangeDim iRw en tant qu'entierDim iCol en tant qu'entier'définir la plageDéfinir rng = Range("E11")'compter les lignesiRw = rng.CurrentRegion.Rows.Count'compter les colonnesiCol = rng.CurrentRegion.Columns.Count'afficher le résultat dans une boîte de messageMsgBox ("Nous avons des lignes " & iRw & " et des colonnes " & iCol & " dans notre région actuelle")Fin du sous-marin

Si nous exécutons la procédure, la boîte de message suivante apparaîtra.

Effacement de la région actuelle

Nous pouvons également utiliser la propriété region actuelle pour effacer la plage de cellules.

123456 Sous ClearCurrentRegion()Dim rng As Range'définir la plageDéfinir rng = Range("E11")rng.CurrentRegion.ClearFin du sous-marin

Affectation de la région actuelle à une variable

Nous pouvons également affecter toute la région actuelle à une variable de plage, puis utiliser cette variable de plage pour manipuler les cellules - que ce soit le formatage des cellules, le tri des cellules, etc.

12345678910 Sub AssignCurrentRegionToVariable()Dim rng As Range'définit la plage comme étant la région actuelle de E11Définir rng = Range("E11").CurrentRegion'colorer le fond et le texterng.Interior.Pattern = xlSolidrng.Intérieur.Couleur = 65535rng.Font.Bold = Truerng.Font.Color = -16776961Fin du sous-marin

Si nous exécutons la procédure ci-dessus, nous nous retrouverons avec une feuille de calcul comme indiqué ci-dessous !

Obtenir les cellules de début et de fin dans la région actuelle

Avec un code légèrement plus compliqué, nous pouvons obtenir la première cellule et la dernière cellule dans une région actuelle.

123456789101112131415161718 Sous GetStartAndEndCells()Dim rng As RangeDim iRw en tant qu'entierDim iCol en tant qu'entierDim iColStart, iColEnd, iRwStart, iRwEnd en tant que chaîne'définit la variable de plage comme étant la région actuelle de E11Définir rng = Range("E11").CurrentRegion'définit la colonne de début pour la plageiColStart = rng.Column'obtenir la colonne de fin pour la plageiColEnd = iColStart + (rng.Columns.Count - 1)'obtenir la ligne de départ pour la plageiRwStart = rng.Ligne'obtenir la ligne de fin pour la plageiRwEnd = iRwStart + (rng.Rows.Count - 1)'afficher l'adresse des lignes et colonnes de début et de fin dans une boîte de messageMsgBox ("La plage commence à " & Cells(iRwStart, iColStart).Address & " et se termine à " & Cells(iRwEnd, iColEnd).Address)Fin du sous-marin

Lorsque nous exécutons le code ci-dessus, la boîte de message suivante apparaîtra

wave wave wave wave wave