Bonjour à tous,

J'ai créé, dans un module complémentaire, une macro qui passe toutes les cellules de ma sélection en majuscule.
J'y ai donc accès depuis tous mes classeurs Excel via un bouton ajouté au ruban.
Idem avec Minuscule et Trim.

Voilà le code pour les majuscules (il n'y qu'une ligne qui change pour les deux autres) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Mettre_en_majuscule_la_selection()
 
Application.ScreenUpdating = False
    Dim rg As Range: Set rg = Selection
    Dim t() As Variant: t() = rg
    Dim ligne As Double, colonne As Double
 
    For colonne = 1 To UBound(t, 2)
        For lign = 1 To UBound(t, 1)
            On Error Resume Next
            t(ligne, colonne) = UCase(t(ligne, colonne))
            On Error GoTo 0
        Next ligne
    Next colonne
    rg = t()
Application.ScreenUpdating = True
 
End Sub
Ça fonctionne plutôt bien sauf quelques bizarreries, je m'explique :
  • Lorsque je lance la macro avec une seule cellule ça plante lors de l'attribution de rg a mon tableau t (t() = rg).
  • Avec des dates, ça fait vraiment des choses bizarres, les mois et les jours sont échangés et la sub ne parcours pas toute la selection.


Si quelqu'un sais me donner des explications qui m'aideraient a comprendre le VB encore un peu plus je suis plus que preneur.
Merci d'avance à tous et bonne journée.