Il est de bon ton de se souhaiter la bonne année. Mais vous, et vous seul, pourrez faire en sorte que cette année soit bonne, meilleure que celle qui vient de s'écouler. Apprenez à ne compter que sur vous, car personne n'est plus qualifié que vous-même pour bâtir, réparer ou améliorer votre propre vie. Personne ne fera les choses à votre place. D'ailleurs, tout ce que les autres peuvent faire, c'est souhaiter que vous le fassiez. Et ne croyez pas que tout ceux qui vous entourent vous apporteront des solutions : certains font juste partie de vos problèmes. Transformez vos résolutions en actes, et dans douze mois, retournez-vous et souriez-vous fièrement : C'était long. C'était difficile. Mais ça y est : 2017 était une bonne année, merci Moi.

Cellules et plages de cellules

Prenons cette feuille de calcul pour l'exemple :

Accès à une cellule précise

Sélectionner "Prix" avec Range :

Range("C2").select

Sélectionner "Prix" avec Cells(Ligne, Colonne)

Cells(2,3).select

Sélectionner toute la feuille de calcul :

Cells.select
' Effacer toute la feuille de calcul (Formats et contenu) :
Cells.Delete

Sélectionner les deux tableaux à la fois :

ActiveSheet.UsedRange.Select

Sélectionner de B3 à C6 :

Range("B3:C6").Select

Sélectionner seulement le tableau des fruits (n'importe quelle cellule au sein du tableau fait l'affaire) :

Range("C5").CurrentRegion.Select

Sélectionner le tableau "Papeterie" :

Range("G8").CurrentRegion.Select

Multi sélection : Sélectionner le contenu des deux tableaux, sans les titres ni les totaux :

Range("B3:C6,F6:H9").Select

Effacer les cellules sélectionnées de l'utilisateur (choisies avec la souris):

Selection.Clear

Effacer la cellule sélectionnée par l'utilisateur (Dans le cas d'une plage de cellules, la première sélectionnée)

ActiveCell.Clear

Comptage des cellules : Qu'elles soient vides ou pas :

MsgBox Range("A1:B2").Count ' 4
MsgBox ActiveSheet.UsedRange.Count ' 63

Comptage des lignes et colonnes :

MsgBox ActiveSheet.UsedRange.Columns.Count ' 7
MsgBox ActiveSheet.UsedRange.Rows.Count ' 9
' Ces deux lignes sont identiques :
MsgBox ActiveSheet.UsedRange.Cells.Count ' 63
MsgBox ActiveSheet.UsedRange.Count ' 63

Limites des tableaux avec xlDown, xlToLeft, xlToRight, xlUp

Range("B2:C7").End(xlDown).Select ' B7 (Et pas C7)
Range("B3:C4").End(xlDown).Select ' B7 (Et pas B4 ni C4)
Range("C2:B5").End(xlDown).Select ' B7 (Et pas C7)
Range("B3").End(xlDown).Select ' B7 (Et pas B3)Range("C4:D25").End(xlDown).Select
Range("C3").End(xlDown).Select
Range("F7").End(xlToLeft).Select ' E7 (Et pas B7)
Range("F7").End(xlToRight).Select ' H7
Range("F7").End(xlUp).Select ' F5 (et pas F4 ni E4 : cellule fusionnée)
Range("F7").End(xlDown).Select ' F9 (et pas F10)

Utilisation d'un tableau dans une plage de cellules. Ici la 3ème cellule à partir de B2

MsgBox Range("B2:B5")(3).AddressLocal ' $B$4
MsgBox Range("B2:C5")(3).AddressLocal ' $B$3 : 1=B2, 2=C2, 3=B3

Utilisation des fonctions Excel au sein de VBA. Il faut connaître leur correspondances en anglais.

MsgBox Evaluate("SUM(C3:C6)+AVERAGE(G6:G9)")
MsgBox WorksheetFunction.Sum(Range("C3:C6"))