1 | Déclaration d'une plage/cellule
Dans ce document, la feuille dans laquelle se trouvera la plage sera désignée sous le nom :
feuille
2 | Affectation de plages et cellules
Notation A1
Set plageZone = feuille.Range("A1:B5")
Désigne la plage A1:B5
Set plageZone = feuille.Range("A:A,C:C,F:F")
Désigne les colonnes A, C et F
Numéro d'index
Set plageZone = feuille.Cells(6, 1)
plageZone.Value = 10
La cellule A6 (ligne 6 et colonne 1) contiendra la valeur 10.
Relative à des cellules
Set plageZone=ActiveCell.Offset(1, 3)
plageZone.Font.Underline = xlDouble
Applique un souligné double à une cellule situé une ligne en dessous et 3 colonnes vers la droite de la cellule active.
Plage nommée
Set plageZone = classeur.Names("Produits").RefersToRange
plageZone.Font.Italic = True
Met en italique les cellules de la plage nommée Produits.dans le classeur classeur.
Lignes et colonnes
Set plageZone = feuille.Rows(1)
plageZone.Font.Bold = True
Met en gras toutes les cellules de la ligne A de la feuille.
Toutes les cellules
feuille.Cells.ClearContents
Efface toutes les cellules de la feuille.
La région courante
Set plageZone = feuille.Range("A1").CurrentRegion
Sélectionne la zone autour de la cellule A1, équivalent à CTRL + *. Celle-ci est une plage limitée par toute combinaison de lignes et de colonnes vides.
Sauf la première ligne
Set plageZone = ActiveCell.CurrentRegion
Set plageZone = plageZone.Offset(1).Resize(plageZone.Rows.Count - 1)
Manipulation de plages et cellules
Effacer
Set plageZone = feuille.Range("A1:B5")
plageZone.ClearContent
Efface le contenu des cellules de la plage A1:B5
Supprimer
Set plageZone = feuille.Range("2:2")
Set plageZone = feuille.Delete
Supprime le contenu de la ligne 2
Set plageZone = feuille.Range("B5")
plageZone.Delete xlShiftToLeft
Supprime la cellule B5 et décale vers la gauche. Autre valeur possible xlShiftUp.
Insérer
Set plageZone = feuille.Range("2:2")
plageZone.Insert
Insère une cellule au-dessus de la cellule A2
Set plageZone = feuille.Range("A2")
plageZone.Insert xlShiftDown
Insère une ligne au-dessus de la ligne 5
Set plageZone = feuille.Range("B5")
plageZone.EntireRow.Insert xlShiftDown
Insère une colonne à droite de la colonne 2
Set plageZone = feuille.Range("B5")
plageZone.EntireColumn.Insert xlShiftToRight
Copier/coller des cellules
feuille.Range("A1:E4").Copy Destination:=autre_feuille.Range("B2")
Copie la plage A1:E4 de feuille et colle ces cellules à partir de la cellule B2 de autre_feuille.
Fonctions personnalisées
Vérifie si un nom de plage existe
Renvoie True si le nom de plage sName existe. Sinon renvoie False.
Function RangeNameExists(sName) As Boolean
Dim n As Name
RangeNameExists = False
For Each n In ActiveWorkbook.Names
If UCase(n.Name) = UCase(nname) Then
RangeNameExists = True
Exit Function
End If
Next n
End Function
Tester un type de sélection
Dim c
c = TypeName(Selection)
La variable c pourra contenir :
Range (une cellule ou une plage de cellule ChartArea (une zone de traçage d’un graphique) ChartTitle (le titre d’un graphique) Series (une série dans un graphique) Etc.
Résumé