CHANGER LA CASSE DANS LES CELLULES SELECTIONNÉES

Messages postés
7
Date d'inscription
mercredi 30 janvier 2002
Statut
Membre
Dernière intervention
27 octobre 2003
- - Dernière réponse : papol2
Messages postés
1
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
15 avril 2008
- 15 avril 2008 à 20:55
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

Afficher la suite 
cs_Isa45
Messages postés
7
Date d'inscription
mercredi 30 janvier 2002
Statut
Membre
Dernière intervention
27 octobre 2003
-
interressant !!!
taubalo
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
papol2
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