Range en VB Excel C'est quoi exactement ?

Fermé
Dr Zero Messages postés 1055 Date d'inscription samedi 29 mai 2010 Statut Membre Dernière intervention 15 décembre 2021 - 14 août 2015 à 12:59
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 - 14 août 2015 à 14:44
Bonjour tout le monde

Novice dans le VB et ma question risque de faire sourire.
Bon voici, j'utilise la commande Range et j'ai l'impression (bonne ou pas) qu'on l'utilise à toute les sauces (sélectionner une cellule, lui donnée une mise en forme, trouver le numéro de la ligne de la cellule ...)
Quelqu'un pourrait-il donner une explication un peu plus claire, car dans mes recherche sur le net, je tombe sur des sites qui m'expliquent comment l'utiliser mais ce qu'elle est exactement.

Merci d'avance de vos explications.

A voir également:

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
Modifié par Patrice33740 le 14/08/2015 à 14:41
Bonjour,

Comme dit Nicolas, Range désigne une plage de cellules (ou une seule cellule) : c'est un Objet Excel qui appartient à une feuille et cette feuille appartient à un classeur.

Aux Objets sont associés :
- des propriétés (valeur ou objet lié)
- des méthodes (action)
- et parfois des évènements

Exemples de propriété :
Range("A1").Value donne la valeur de la cellule A1
Range("A1").FormulaLocal donne la Formule de la cellule A1 en tenant compte des options Régionales de Windows (c-à-d en français)

Exemples de méthode :
Range("A1").Clear efface entièrement la cellule A1 (valeur, formats, commentaire, ...)
Range("A1:B1").Merge fusionne les cellules A1 et B1

Il n'y a pas d'évènement natif associé à l'objet Range, mais il est possible d'en définir. Par contre il existe des évènements pour les feuilles de calcul, par exemple :
- l'évènement Change se produit quand le contenu d'une cellule est modifié
- l'évènement SelectionChange se produit quand on change la cellule, la plage ou l'objet sélectionné.

On définit la cellule A1 et la feuille "Feuille 1" du classeur dans lequel se situe la macro comme suit :
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Feuille 1").Range("A1")
et celle du classeur actif (qui n'est pas forcement le même) :
Set rng = ActiveWorkbook.Worksheets("Feuille 1").Range("A1")

et ensuite on peut définir une propriété (écrire Bonjour en A1) :
rng.Value = "Bonjour"
ou utiliser une ou des méthodes (Resize = redimensionner la plage vers 2 ligne et 3 colonnes puis, Merge = fusionner les 6 cellules, c'est à dire A1 à C2) :
rng.Resize(2, 3).Merge

Parfois on utilises des syntaxes abrégées (déconseillées aux débutants) :
Set rng = Worksheets("Feuille 1").Range("A1")  'du classeur actif
Set rng = Range("A1")  'de la feuille active


Voici un lien vers un excellent cours VBA :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf
Cordialement
Patrice
4