|
CELLULE
Utilisez la méthode Range comme dans les exemples
suivants :
| |
représente |
| Range("A1") |
la cellule A1 |
| Range("A1:B5") |
la plage comprenant l'ensemble des
cellules contenu dans le rectangle limité par la cellule
A1 et la cellule B5. |
| Range("A1,B5") |
les cellules A1 et B5 |
| Range("A1:B2,A5:B5") |
la plage A1:B2 et la plage A5:B5 |
| Range("A:A") |
la colonne A |
| Range("2:2") |
la ligne 2 |
| Range("A:C,F:G") |
les colonnes A,B,C et F,G |
| Range("1:3") |
les lignes 1 à 3 |
La syntaxe de cette propriété est la suivante :
FeuilledeTravail.Cells(ligne,colonne) où ligne correspond
au n° de ligne de la cellule et colonne correspond
au n° de colonne de la cellule. Exemple :
Sub UneCellule()
MsgBox "L'adresse est : " & ActiveSheet.Cells(2,
2).Address, vbOKOnly, "Cellule Cells(2,2)"
End Sub
Lorsque vous avez nommé au préalable une cellule ou une
plage de cellules, vous pouvez travailler dessus en VBA grâce à ce
nom. Exemple :
- Nommez 'MaPlage', la plage A1:B10 d'une feuille.
- Tapez puis lancez la procédure suivante :
Sub UnePlage()
Dim n As Byte
Dim Plage As Range
For Each Plage In ActiveSheet.Range("MaPlage")
n = n + 1
Plage = n
Next
End Sub
Utilisez la propriété Offset, elle a la syntaxe suivante
:
UnePlage.Offset(RowOffset, ColumnOffset) où RowOffset correspond
au nombre de lignes de décalage et ColumnOffset au
nombre de colonne de décalage.
| |
Correspond à la
cellule |
| Range("C10").Offset(0,2) |
E10 |
| Range("C10").Offset(2,2) |
E12 |
| Range("C10").Offset(2,-2) |
E8 |
| Range("C10").Offset(-2,-2) |
A8 |
Essayez la procédure suivante :
Sub UnePlage(NoL As Integer, NoC As Integer)
If NoL < -9 Or NoC < -5 Then Exit Sub
Range("F10").Select
Range("F10").Offset(NoL, NoC) = "Ok"
End Sub
Dans la fenêtre d'exécution tapez, puis exécutez
la ligne suivante avec des valeurs différentes : UnePlage
-9,-5
Utilisez soit la méthode Range avec la syntaxe
du type : Range("A:A") ou Range("1:1"),
soit les propriétés Rows et Columns où :
| |
Correspond à |
| Rows |
toutes les lignes |
| Rows(10) |
la ligne 10 |
| Columns |
toutes les colonnes |
| Columns(3) |
la colonne 3 ou C |
| Columns("C") |
la colonne C |
Utilisez la propriété Cells. Ainsi la ligne suivante
vous permet d'effacer le contenu de chaque cellule de la feuille active
:
ActiveSheet.Cells.ClearContents
Vous pouvez utilisez :
- tout simplement la méthode Range, comme pour
l'exemple suivant : Range("A1:B2,A5:B5") .
- ou la méthode Union qui permet de combiner
plusieurs plages en un seul objet Range. Exemple :
Sub PlageMultiple()
Dim Plage1 As Range, Plage2 As Range, Plages As Range
Set Plage1 = Range("A1:B2")
Set Plage2 = Range("C3:D4")
Set Plages = Union(Plage1, Plage2)
Plages.Interior.Color = RGB(255, 255, 204)
End Sub
Sub ParcourirPlage()
Dim n As Byte
Dim Plage As Range
For Each Plage In ActiveSheet.Range("MaPlage")
n = n + 1
Plage = n
Next
End Sub
Sub ParcourirPlage()
Dim Nol As Integer
For Nol = 1 To 10
Range("B" & Nol) = Nol
Next
End Sub
Sub ParcourirPlage()
Dim Nol As Integer, Noc As Integer
For Nol = 1 To 10
For Noc = 1 To 3
Cells(Nol, Noc) = Nol & Noc
Next Noc
Next Nol
End Sub
|