Soyez le premier à donner votre avis sur cette source.
Snippet vu 11 783 fois - Téléchargée 48 fois
Sub ConvertCasse() ' Déclaration des variables Dim element ' Traitement de la sélection For Each element In Selection Select Case True ' le contenu est en minuscule -> conversion en Majuscule (UCASE = Upper Case) Case element.Value = LCase(element.Value) element.Value = UCase(element.Value) ' le contenu est en majuscule -> conversion en initiale majuscule par appel à la fonction EXCEL : "NOMPROPRE()" Case element= UCase(element.Value) element.Value = Application.WorksheetFunction.Proper(element.Value) Case Else ' le contenu n'est ni majuscule, ni minuscule -> conversion en minuscule (LCASE= Lower Case) element.Value = LCase(element.Value) End Select Next ' Ajustement automatique de la colonne ActiveCell.Columns.AutoFit End Sub
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
"ActiveCell.Columns.AutoFit"
merci encore
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.