CHANGER LA CASSE DANS LES CELLULES SELECTIONNÉES

Signaler
Messages postés
7
Date d'inscription
mercredi 30 janvier 2002
Statut
Membre
Dernière intervention
27 octobre 2003
-
Messages postés
1
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
15 avril 2008
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/2515-changer-la-casse-dans-les-cellules-selectionnees

Messages postés
1
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
15 avril 2008

Intéressant, sauf que cela ne marche pas si la cellule ne contient qu'une lettre ou des lettres unitaires séparées par des signes ou chiffres (par exemple a-b , elle(s) reste(nt) désespérément en majuscule(s), car dans ce cas il n'y apas de différence entre "tout en majuscule" et "nom propre".
Il suffit pour y remédier de changer l'ordre des comparaisons, soit :

Sub ConvertCasse()
' Déclaration des variables
Dim element
' Traitement de la sélection
For Each element In Selection
' Il ne faut pas modifier les cellules qui ne soient pas du texte
If element.HasFormula = False And element.Value <> "" Then
Select Case True
' le contenu est en majuscule
' -> conversion en minuscule (LCASE= Lower Case)
Case element.Value = UCase(element.Value)
element.Value = LCase(element.Value)
' le contenu est en minuscule -> conversion en nom propre par
' appel à la fonction EXCEL : "NOMPROPRE()"
Case element = LCase(element.Value)
element.Value = Application.WorksheetFunction.Proper(element.Value)
Case Else
' le contenu n'est ni en minuscule, ni nom propre,
' -> conversion en majuscule (UCASE = Upper Case)
element.Value = UCase(element.Value)
End Select
End If
Next
' Ajustement automatique de la colonne
ActiveCell.Columns.AutoFit
End Sub

Et hop ! ça marche. (J'ai rajouté un test pour éviter de replacer les formules par leur résultat.

Papol2
Messages postés
1
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004

enfin ,,,,,cela fait 1 mois que je cherchais ce code et en plus il fonctionne j'ai simplement supprimé la ligne
"ActiveCell.Columns.AutoFit"
merci encore
Messages postés
7
Date d'inscription
mercredi 30 janvier 2002
Statut
Membre
Dernière intervention
27 octobre 2003

interressant !!!