Visual Basic For Applications
La première lettre en majuscule !

Une solution en VBA pour que tous les textes commencent par une majuscule dans vos fichiers Excel.

Maîtriser la casse

Convertir des majuscules en minuscules ou vice versa est possible de plusieurs manières :

  1. Grâce aux formules (vous pouvez consulter l’article correspondant).
  2. Avec du VBA comme nous allons le voir dans cet article.

Lorsque votre fichier contient beaucoup de colonnes ou lignes à traiter, il peut être plus rapide de passer par une macro que par les formules.







La macro

La macro à la fin de cet article tranforme tous les textes pour mettre la première lettre en majuscule et que le reste du texte soit en minuscules. Le code ignore cependant toutes les cellules contenant autre chose que du texte.

Les contrôles de type de valeur

Le code est conçu pour ne pas traiter les nombres et les cellule contenant des formules et doit donc effectuer quelques contrôles. Ces vérifications sont faîtes grâce à des fonctions et propriétés.

La fonction Isnumeric

La fonction Isnumeric() permet de renvoyer VRAI si la valeur est numérique ou FAUX si elle ne l’est pas.

La fonction IsEmpty

IsEmpty(), comme la fonction précédente, renvoie VRAI si la valeur est vide et FAUX si elle n’est pas.

La propriété .HasFormula

Le troisème controle s’effectue grâce est à la propriété .HasFormula qui donne VRAI si la cellule contient une formule et FAUX si elle contient une valeur fixe ou vide.


Le code

Pour l’utiliser, il suffit de copier le code dans votre éditeur VBA puis, lorsque vous avez sélectionné la feuille que vous souhaitez traiter, de lancer la macro. Le code va traiter l’ensemble de votre feuille.

Conseil

Pensez à vérifier que des cellules vides ne soient pas actives afin de faire diminuer le temps d’exécution de la macro.

La macro utilise deux types de fonctions conditionnelles. Nous vous invitons à lire notre article sur le sujet pour en apprendre plus sur la fonction If et Case.

 
'Auteur : www.Indexmatch.fr
'Date : 10/2017
 
Option Explicit
Sub premiere_lettre_majuscule()
 
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
 
Dim compteur As Date
Dim compteur2 As Date
 
Dim ControlValue As String
Dim Cell As Range
Dim Adresse As String
Dim AdresseColumn As Integer
Dim AdresseRow As Integer
 
    Adresse = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Address 'recherche la dernière cellule active de votre feuille.
    AdresseColumn = Range(Adresse).Column
    AdresseRow = Range(Adresse).Row
 
    For Each Cell In Range(Cells(1, 1), Cells(AdresseRow, AdresseColumn))
 
        If IsNumeric(Cell.Value) = True Then ControlValue = 1
 
        If IsNumeric(Cell.Value) = False Then ControlValue = 2
 
        If Cell.HasFormula = True Then ControlValue = 3
 
        If IsEmpty(Cell.Value) = True Then ControlValue = 4
 
            Select Case ControlValue
 
                Case 1
 
                    Cell.Value = Cell.Value
 
                Case 2
 
                    Cell.Value = UCase(Left(Cell.Value, 1)) & LCase(Right(Cell.Value, Len(Cell.Value) - 1))
 
                Case 3
 
                    Cell.Value = Cell.Formula
 
                Case 4
 
                    Cell.Value = Cell.Value
 
            End Select
 
    Next Cell
 
Application.Calculation = xlCalculationAutomatic
 
End Sub
Notez nous !
[Moyenne : 4.9]