Une macro pour agir sur une sélection de cellule

Voici une liste de noms avec des dates de naissance.

On souhaite colorier en rouge les noms de ceux qui sont nés en 1991 et 1992. Pour cela l'utilisateur de la macro colorierenrouge() doit :

Sélectionner la bonne plage de cellule ; la sélection doit comprendre les 3 colonnes nom, prénom et date naissance sans inclure le libellé des champs.

puis ensuite exécuter la macro colorierenrouge().

Voici le résultat à obtenir :

Le code VBA :

Sub colorier_en_rouge()
Dim cel As Range 'range définit les cellules sélectionnées
Dim i As Integer
Dim dateN As Date
'parcourir la sélection de l'utilisateur
For Each cel In Selection 'pour chaque cellule de la sélection
If cel.Column = 3 Then 'la 3ème colonne est celle des dates de naissance
dateN = cel.Text 'mémoriser la date de la cellule dans dateN
annéeN = Year(dateN) 'extraire l'année
If annéeN >= 1991 And annéeN <= 1992 Then
cel.Font.Color = vbRed 'colorier en rouge la date
End If
End If
Next
End Sub

Manipulation des dates (Exemple ladate=25/08/1990) : Year(ladate) : renvoie l’année (1990) Month(ladate) : renvoie le mois (08) Day(ladate) : renvoie le jour (25)

Autre manipulation des cellules

En utilisant la même liste de noms, créer une procédure (Macro) Liste_nom() qui va recopier les 10 premiers noms dans une autre feuille du classeur. Cette procédure devra faire :

Créer une nouvelle feuille et la renommer “Liste”

créer les entêtes de colonnes

Lire chaque nom, prénom et date de naissance des 10 premiers noms de la feuille précédente puis recopier ces informations dans la nouvelle feuille.

Astuce : Il est possible de référencer une cellule de la manière suivante : cells(i,j) (ligne, colonne) Pour connaître quelles instructions VBA utiliser afin de réaliser une tâche particulière, enregistrez une macro en faisant exactement les différentes actions nécessaires. Il ne vous reste plus ensuite qu’à arrêter l’enregistrement de la macro pour regarder le code VBA généré par Excel … et le réutiliser.