Outils pour utilisateurs

Outils du site


dev:excelvba:macroselcellule

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 colorier_en_rouge() 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 colorier_en_rouge().

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.
dev/excelvba/macroselcellule.txt · Dernière modification: 2015/11/04 00:45 (modification externe)