|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Exemple : Sub Police_Plage()
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Borders(xlInsideHorizontal) | Bordure Horizontale |
| Borders(xlInsideVertical) | Bordure Verticale |
| Borders(xlDiagonalDown) | Bordure Diagonale descendante |
| Borders(xlDiagonalUp) | Bordure Diagonale montante |
| Borders(xlEdgeBottom) | Bordure Inférieure |
| Borders(xlEdgeLeft) | Bordure Gauche |
| Borders(xlEdgeRight) | Bordure Droite |
| Borders(xlEdgeTop) | Bordure Supérieure |
| Propriétés | Valeurs | Correspond à |
|---|---|---|
| Color | RGB(r,v,b) où r,v,b sont des entiers de 0 à 255 correspondant à la quantité de rouge, vert, bleu | La couleur |
| ColorIndex | un entier de 1 à 55 correspondant à l'index de la couleur dans la palette en cours ou xlColorIndexAutomatic (automatique) ou xlColorIndexNone (aucune) | La couleur |
| LineStyle | xlLineStyleNone xlContinuous xlDash xlDashDot xlDashDotDot xlDot xlDouble xlSlantDashDot |
le style de ligne de
la bordure Aucune Continue Tiret Tiret-Point Tiret-Point-Point Pointillé Double Spécial |
| Weight | Une valeur de type long ou xlHairline xlThin xlMedium xlThick |
la largeur précise
ou Très fin Fin Moyen Epais |
Exemple :
Sub Bordure_Plage()
With Selection
.Value = "Essai"
.Borders.Color = RGB(0, 51, 102)
.Borders(xlEdgeBottom).Weight = xlMedium
.Borders(xlEdgeTop).Weight = xlThick
.Borders(xlEdgeLeft).Weight = xlHairline
.Borders(xlEdgeRight).Weight = xlThin
.Borders.LineStyle = xlContinuous
End With
End Sub
De nouveau le même principe, les fonds et motifs sont gérés par la propriété Interior qui renvoie l'objet Interior, qui lui-même a des propriétés.
| .Interior | Valeurs | Correspond à |
|---|---|---|
| Color | RGB(r,v,b) où r,v,b sont des entiers de 0 à 255 correspondant à la quantité de rouge, vert, bleu | La couleur du fond |
| ColorIndex | un entier de 1 à 55 correspondant à l'index de la couleur dans la palette en cours ou xlColorIndexAutomatic (automatique) ou xlColorIndexNone (aucune) | La couleur du fond |
| Pattern | Une des 20 constantes XlPattern | Type de motif |
| PatternColor | RGB(r,v,b) où r,v,b sont des entiers de 0 à 255 correspondant à la quantité de rouge, vert, bleu | La couleur du motif |
| PatternColorIndex | un entier de 1 à 55 correspondant à l'index de la couleur dans la palette en cours ou xlColorIndexAutomatic (automatique) ou xlColorIndexNone (aucune) | La couleur du motif |
Exemple :
Sub Bordure_Plage()
With Range("A1:B10").Interior
.Color = RGB(255, 255, 204)
.Pattern = xlPatternGray16
.PatternColor = RGB(0, 102, 0)
End With
End Sub
Ainsi, vous pouvez préparer une feuille en VBA, en déverrouillant quelques cellules et en masquant celles qui contiennent une formule avant de protéger la feuille :
Sub Protection()
Range("A1") = 1
Range("B1") = 2
Range("C1").FormulaLocal = "=SOMME(A1:B1)"
Range("A1:B1").Locked = False
Range("C1").FormulaHidden = True
ActiveSheet.Protect
End Sub
|
|---|
Sub FormatConditionnel()
With Range("A1")
.Value = 1
.DataSeries xlColumns, xlDataSeriesLinear, , 5,
50
With .CurrentRegion.FormatConditions
.Add xlCellValue, xlLess, "20"
.Add xlCellValue, xlGreater, "40"
.Add xlCellValue, xlBetween, "20", "40"
End With
With .CurrentRegion
.FormatConditions(1).Interior.Color
= RGB(255, 255, 153)
.FormatConditions(2).Interior.Color
= RGB(255, 102, 51)
.FormatConditions(3).Interior.Color
= RGB(255, 255, 204)
End With
End With
End Sub
|
|---|
Sub Lecture_Ecriture()
ActiveCell = "Essai"
With ActiveCell
.Offset(1, 0) = "No"
.Offset(2, 0) = 1
.Offset(0, 1) = .Offset(1, 0) & " " & .Offset(2,
0)
End With
End Sub
Sub Etude_Caracters()
With ActiveCell
.Value = "Essai de texte"
.Characters(1, 5).Font.Bold = True
End With
End Sub
| Formula | Renvoie ou définit la formule de l'objet dans le style de référence A1 dans la langue de la macro, soit l'anglais. |
| FormulaLocal | Renvoie ou définit la formule de l'objet dans le style de référence A1 dans le langage de l'utilisateur. |
| FormulaR1C1 | Renvoie ou définit la formule de l'objet, en utilisant les notations de style R1C1 dans le langage de la macro, soit l'anglais. |
| FormulaR1C1Local | Renvoie ou définit la formule de l'objet, en utilisant les notations de style R1C1 dans le langage de l'utilisateur. |
Si vous travaillez uniquement pour des applications en langue française, je vous conseille d'utiliser les propriétés FormulaLocal et FormulaR1C1Local qui vous permettent de créer votre formule dans une cellule, puis de la copier et enfin de la coller dans votre code VBA (ainsi vous évitez les erreurs), alors que les 2 autres propriétés impliquent que vous connaissiez le nom des fonctions en Anglais.
Sub Formules()
With Range("A1")
.Value = 1
.DataSeries xlColumns, xlDataSeriesLinear, , 5,
50
End With
With Range("B1")
.FormulaLocal = "=SOMME(A:A)"
Range("C1") = "FormulaLocal : " & .FormulaLocal
Range("C2") = "Formula : " & .Formula
Range("C3") = "FormulaR1C1 : " & .FormulaR1C1
Range("C4") = "FormulaR1C1Local
: " & .FormulaR1C1Local
End With
Columns("C").AutoFit
End Sub
|
|---|
À partir d'une cellule, vous pouvez connaître son adresse, la plage de cellules contiguës, la dernière cellule de cette plage.
La propriété Address renvoie l'adresse de la cellule sous forme de texte.
MsgBox ActiveCell.Address
Une région est une plage de cellules contiguës limité par des lignes et colonnes vide. Avec la propriété CurrentRegion, vous récupérez la plage qui constitue une région à partir d'une cellule. Exemple :
Sub Region()
Dim L As Byte, C As Byte
For L = 1 To 10
For C = 1 To 5
Cells(L, C) = L & C
Next C
Next L
Cells(1, 1).CurrentRegion.Interior.Color = RGB(255, 255, 102)
End Sub
Avec la propriété End, vous pouvez connaître la dernière cellule vers le bas, le haut, la droite ou la gauche de n'importe quelle cellule d'une région. Exemple :
Sub RegionFin()
Dim L As Byte, C As Byte
For L = 1 To 10
For C = 1 To 5
Cells(L, C) = L & C
Next C
Next L
Cells(1, 1).CurrentRegion.Interior.Color = RGB(255, 255, 204)
With Range("A1")
.End(xlDown).Interior.Color = RGB(255, 102, 51)
.End(xlToRight).Interior.Color = RGB(255, 255,
153)
.End(xlToRight).End(xlDown).Interior.Color = RGB(0,
102, 0)
End With
End Sub
|
|||
|
|||
|
