CathyAstuce

VBA

GEMCCAP CONSEIL INFORMATIQUE BUREAUTIQUE
Formation - Conception Sites Internet
Applications Informatiques Personnalisées
Communauté partenaire Microsoft

MÉTHODE POUR LE FORMAT D'UNE PLAGE

  Effacer le format Ajout d'une bordure Fusionner, scinder et diviser Largeur de colonne ou hauteur de ligne

Remonter I. Effacer le format

Pour n'effacer que le format et non le contenu, utilisez la méthode ClearFormats comme dans l'exemple suivant.

Sub EffacerFormat()
   Dim L As Byte

   For L = 1 To 3
      Range("A" & L) = "Texte n°" & L
      Range("A" & L).Interior.Color = RGB(255, 255, 103)
   Next L
   Range("A2").Select
   If MsgBox("Effacer le format", vbYesNo) = vbYes Then _
   Range("A2").ClearFormats
End Sub

Remonter II. Ajout d'une bordure

Pour ajouter une bordure autour d'une plage, aucunes bordures intérieures ne sera mises, utilisez la méthode BorderAround. Cette méthode permet de préciser directement la couleur, le style et la largeur de la bordure. Sa syntaxe est :
MaPlage.BorderAround(LineStyle, Weight, ColorIndex, Color)

LineStyle
xlContinuous, xlDash, xlDashDot,xlDashDotDot, xlDot, xlDouble, xlLineStyleNone ou xlSlantDashDot ligne continue, tiret, tiret-point, tiret-point-point, pointillé, double, aucune, spéciale.
La valeur par défaut est continu.
Weight
xlHairline, xlThin, xlMedium ou xlThick très fin, fin, moyen ou gros. La valeur par défaut est fin.
ColorIndex
L'index d'une couleur de la palette courante ou xlColorIndexAutomatic ou xlColorIndexNone Une couleur de la palette ou couleur automatique ou aucune
Color
La couleur sous forme RGB Attention ne renseigner qu'un seul des 2 paramètres couleur (ColorIndex ou Color).

Sub Contour()
   Dim L As Byte

   For L = 1 To 3
      Range("A" & L) = "Texte n°" & L
      Range("A" & L).Interior.Color = RGB(255, 255, 103)
   Next L
   Range("A1:A3").BorderAround xlDashDotDot, xlMedium, 15
End Sub

Remonter III. Fusionner, scinder et diviser

Si vous voulez fusionner plusieurs cellules contiguës ensemble vous devez utiliser la méthode Merge. Pour scinder cette plage (revenir à l'original), la méthode est UnMerge.

Sub Fusion()
  Dim L As Byte

  For L = 1 To 3
    Range("A" & L) = "Texte n°" & L
    Range("A" & L).Interior.Color = RGB(255, 255, 103)
  Next L
  Range("A1:A3").Select
  Application.DisplayAlerts = False 'évite le message d'alerte, essayer en mettant cette ligne en commentaire
  If MsgBox("Fusionner la plage", vbYesNo) = vbYes Then _
    Range("A1:A3").Merge
  If MsgBox("Scinder la plage", vbYesNo) = vbYes Then _
    Range("A1:A3").UnMerge
  Application.DisplayAlerts = True
End Sub

La méthode Parse, permet quand à elle de diviser le contenu d'une plage dans plusieurs cellule. Par exemple, dans une colonne, les cellules contiennent le Code Postal suivi d'un espace et du nom de la ville, vous désirez séparer ces données en 2 colonnes, l'une contient le code postal et l'autre la ville :

Sub Diviser()
   Dim L As Byte

   For L = 1 To 5
      Range("A" & L) = (81660 + L) & " Ville" & L
   Next L
   Range("A1:A5").Parse "[xxxxx][xxxxxxxxxx]", Range("C1")
End Sub

Le 1er paramètres indique entre crochets le nombre de caractères dans chaque colonne (1 colonne par paire de crochet), le 2ème paramètre indique la cellule supérieure gauche de la plage contenant les données divisées.

Remonter IV. Largeur de colonne ou hauteur de ligne

la méthode AutFit ajuste la largeur des colonnes de la plage ou la hauteur des lignes de la plage pour que le contenu de chaque cellule soit visible.
ActiveSheet.Columns("A:I").AutoFit ajuste la largeur des colonnes A à I
ActiveSheet.Range("A1:I10").Columns.AutoFit ajuste la largeur des colonnes A à I selon le contenu de la plage A1:I10.
AccueilDébut de la page