Objet Range

  • Initiateur de la discussion LaurentTBT
  • Date de début
L

LaurentTBT

Guest
Hello,

J'ai encore besoin d'essayer de créer un fil, alors autant faire dans l'utile!
Voici un petit résumé des possibilités de travail sur les objets Range:

A partir d'une plage (MyRange)
on a accès à 3 collections
-MyRange.Cells c'est la collection des cellules composant la plage
on peut accéder à un élément de cette collection de 2 manière:
Soit cells(i,j) = la cellule en ième ligne et jème colonne de my range (attention, on décompte à partir de la première cellule de myrange, non à partir de la cellule A1 de la feuille)
soit cells(n) qui est la nième cellule de MyRange (on compte dans l'ordre les cellules de la première ligne, puis on passe aux lignes suivantes)
-MyRange.Columns c'est la collection des colonnes de MyRange
-MyRange.Rows c'est la collection des lignes de MyRange
Remarque:
cells, columns et rows sont des propriétés de l'objet MyRange qui renvoient elles-mêmes des objets de type range

L'objet Range dispose d'autres propriétés renvoyant des objets Range très utiles:
-Offset(i,j) va décaler la plage initiale de i lignes et de j colonnes
on peut avoir i et j inférieurs à 0
attention, si le décalage nous amène au-delà des limites d'excel, on aura une erreur
par exemple: Range("A1").Offset(-1,-1) n'est pas possible, bien sûr
-Resize permet de redimensionner une plage, en partant de la première cellule de la plage initiale:
Resize(i,j) donnera une plage de i lignes sur j colonnes.
-EntireRow permet de sélectionner la ligne complète (de A à IV) de la plage initiale
-EntireColumn permet de sélectionner la colonne complète (de 1 à 36536)

EXEMPLES:
-myRange.Offset(-1, -1).Resize(myRange.Rows.Count + 2, myRange.Columns.Count + 2).Select
Lire en partant de la fin:
on va sélectionner une plage de (nombre de lignes initial + 2, sur nombre de colonnes initial + 2, et cette plage va être décalée de 1 ligne et une colonne en moins par rapport à la plage initiale.
-myRange.Offset(1, 1).Resize(myRange.Rows.Count , myRange.Columns.Count ) redonne exactement la même chose qu'au départ!!!

Voilà, ce message n'était qu'un prétexte pour tester à nouveau l'envoi d'un nouveau fil! Mais au moins, je vous embêterai de manière plus utile!
Et cette fois, je ne m'avancerai plus à dire que c'est le dernier!

Bonne nuit.
 
D

Dan

Guest
Bonsoir Laurent,

ben tiens je vais mettre les références des fils suivants au sujet de VBA :

Les variables de Michel:
<http://www.excel-downloads.com/html/French/forum/messages/1_87998_87998.htm>

L'exécution d'une instruction à l'ouverture d'un fichier par Thierry :
<http://www.excel-downloads.com/html/French/forum/messages/1_89379_89379.htm>

Bonne soirée

@+

Dan
 

Discussions similaires

Réponses
4
Affichages
360

Statistiques des forums

Discussions
314 190
Messages
2 107 006
Membres
109 735
dernier inscrit
Mounskad