Médiaforma

VBA Excel – Travailler avec des sélections

Print Friendly, PDF & Email

La méthode Range() cible une cellule ou une plage de cellules. Dans un article précédent, vous avez appris à modifier le contenu de cette ou de ces cellules via la propriété Value.

Si vous voulez ne modifier qu’une des cellules sélectionnées, vous devez au préalable l’activer avec la méthode Activate et lui affecter une valeur avec ActiveCell.Value. Par exemple, ces instructions sélectionnent la plage A2:C5, activent la cellule B4, affectent la valeur 10 aux cellules sélectionnées et la valeur 20 à la cellule active :

Range("A2:C5").Select

Range("B4").Activate

Selection.Value = 10

ActiveCell.Value = 20

Voici le résultat de ces instructions :

Sur la plage de cellules sélectionnée ou sur la cellule active, vous pouvez modifier (entre autres) :

  • La couleur d’écriture avec Color
  • La couleur d’arrière-plan avec Color
  • L’alignement horizontal avec HorizontalAlignment
  • La police de caractères avec Name
  • Les attributs gras et italique en affectant la valeur True aux propriétés Bold et Font.Italic

Voici quelques exemples de code :

Range("A2:C5").Select 'Sélection de la plage A2:C5

Selection.Interior.Color = RGB(255, 0, 0) ' Arrière-plan rouge sur la sélection

Selection.HorizontalAlignment = xlCenter 'Centrage horizontal de la sélection

Selection.Font.Name = "Courier" ' Police Courier sur la sélection

Selection.Font.Bold = True 'Sélection en gras

Selection.Font.Italic = True 'Sélection en italique

Toutes ces instructions fonctionneraient également sur la cellule active :

Range("B5").Activate 'Sélection de la cellule B5

ActiveCell.Interior.Color = RGB(255, 0, 0) 'Arrière-plan de la cellule active

ActiveCell.HorizontalAlignment = xlLeft 'Alignement de la cellule active

ActiveCell.Font.Name = "Algerian" ' Police de la cellule active

ActiveCell.Font.Bold = True ' Cellule active en gras

ActiveCell.Font.Italic = True ' Cellule active en italique

Pour éviter d’avoir à répéter Selection ou ActiveCell, vous pourriez factoriser ces deux objets.

Ce qui donnerait avec Selection :

Range("A2:C5").Select

With Selection

  .Interior.Color = RGB(255, 0, 0)

  .HorizontalAlignment = xlCenter

  .Font.Name = "Courier"

  .Font.Bold = True

  .Font.Italic = True

End With

Et avec ActiveCell :

Range("B5").Activate

With ActiveCell

  .Interior.Color = RGB(0, 255, 0)

  .HorizontalAlignment = xlLeft

  .Font.Name = "Algerian"

  .Font.Bold = True

  .Font.Italic = True

End With
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.