cs_Isa45
Messages postés7Date d'inscriptionmercredi 30 janvier 2002StatutMembreDernière intervention27 octobre 2003
-
30 janv. 2002 à 10:12
papol2
Messages postés1Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention15 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.
papol2
Messages postés1Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention15 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és1Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention22 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és7Date d'inscriptionmercredi 30 janvier 2002StatutMembreDernière intervention27 octobre 2003 30 janv. 2002 à 10:12
15 avril 2008 à 20:55
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
22 sept. 2004 à 23:23
"ActiveCell.Columns.AutoFit"
merci encore
30 janv. 2002 à 10:12