CHANGER LA CASSE DANS LES CELLULES SELECTIONNÉES

cs_Isa45 Messages postés 7 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 27 octobre 2003 - 30 janv. 2002 à 10:12
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

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
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
taubalo Messages postés 1 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 22 septembre 2004
22 sept. 2004 à 23:23
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
cs_Isa45 Messages postés 7 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 27 octobre 2003
30 janv. 2002 à 10:12
interressant !!!
Rejoignez-nous