Excel est un outil puissant. Si vous l'utilisez intensivement, vous maîtrisez sans doute les formules et la mise en forme conditionnelle. Mais en exploitant les fonctions Cells et Range en VBA, vous propulsez vos analyses à un niveau supérieur.
Le défi avec ces fonctions en VBA réside dans leur compréhension avancée. Leur syntaxe peut sembler déroutante, mais ce guide vous révèle comment les utiliser de manière innovante et efficace.
Les fonctions Cells et Range permettent à votre script VBA de cibler précisément les cellules pour lire ou écrire des données. La différence clé : Cells référence généralement une seule cellule, tandis que Range gère un groupe de cellules.
La syntaxe de Cells est Cells(ligne, colonne).
Cela référence toutes les cellules de la feuille :
Worksheets("Feuille1").CellsCela cible la cellule C1 (3e colonne, 1re ligne) :
Worksheets("Feuille1").Cells(1, 3)Pour la cellule D15 :
Worksheets("Feuille1").Cells(15, 4)Vous pouvez aussi utiliser la lettre de colonne : Cells(15, "D"). Cette flexibilité excelle dans les boucles pour traiter rapidement de grandes plages de cellules.
Range est plus polyvalente : elle référence une cellule ou une plage en une instruction. Syntaxe : Range("A1", "E20") ou avec Cells.
Exemple pour A5 :
Worksheets("Feuille1").Range("A5")Pour A1:E20 :
Worksheets("Feuille1").Range("A1:E20")Équivalent dynamique avec Cells :
With Worksheets("Feuille1")
.Range(.Cells(1, 1), .Cells(20, 5))
End WithIdéal pour des plages dynamiques via boucles.
Passons maintenant à des applications pratiques.
Cells brille pour appliquer des formules complexes sur plusieurs cellules, y compris sur différentes feuilles.
Exemple : Suivi des performances d'une équipe de 11 vendeurs. Feuille1 : ventes et volumes.

Feuille2 : scores de feedback clients.

Calculez les bonus en VBA, déclenché à l'ouverture ou par bouton.
Activez l'onglet Développeur : Fichier > Options > Personnaliser le ruban, cochez Développeur.

Insérez du code via Afficher le code.

Pour exécution à l'ouverture, dans ThisWorkbook :
Private Sub Workbook_Open()
Dim x As Integer
For x = 2 To 12
Worksheets("Feuille1").Cells(x, 4).Value = _
(Worksheets("Feuille1").Cells(x, 2).Value / 50) * 0.4 + _
(Worksheets("Feuille1").Cells(x, 3).Value / 50000) * 0.5 + _
(Worksheets("Feuille2").Cells(x, 2).Value / 10) * 0.1
Next x
End SubRésultat :

Multipliez par un montant max en cellule pour un bonus en dollars. Cells permet des calculs complexes sur de multiples feuilles.
Explorez l'objet Cells sur MSDN Microsoft.
Pour des actions groupées, Range est idéal.
Exemple : Si total volumes > 400 000 $, surligner les bonus en vert.

Private Sub Workbook_Open()
If Worksheets("Feuille1").Cells(13, 3).Value > 400000 Then
ActiveSheet.Range("D2:D12").Interior.ColorIndex = 4
End If
End SubAutres usages : bordures, vérification orthographe, copier/effacer, recherche...
Consultez MSDN Range.
Maîtrisez Cells et Range pour des scripts avancés. Découvrez les fonctions SOMME et NB dans VBA, et notre guide introductif VBA Excel.
[]