Majuscule uniquement en début de phrase Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
I
Inguyone
Membre habitué
Membre habitué
Messages : 88
Inscrit le : 18 juin 2011
Version d'Excel : 2007 FR

Message par Inguyone » 26 novembre 2015, 06:45

Bonjour le Forum,

Avec l'aide de Banzai64, j'ai une macro qui force la majuscule en début de phrase. Le problème est qu'il faudrait que je puisse utiliser des majuscules dans la phrase et que ce code interdit cette manœuvre en transformant mes majuscules en minuscules si elles ne sont pas placées en début de phrase.

Est-il possible de modifier ce code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Select Case Target.Column

Case 16 ' Colonne P
If Target <> UCase(Left(Target, 1)) & LCase(Mid(Target, 2)) Then
Target = UCase(Left(Target, 1)) & LCase(Mid(Target, 2))
End If
End Select
End Sub

Merci d'avance pour votre aide.
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 3'322
Appréciations reçues : 215
Inscrit le : 26 janvier 2011
Version d'Excel : 2007

Message par Theze » 26 novembre 2015, 06:54

Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count > 1 Then Exit Sub
    If Target.Column <> 16 Then Exit Sub
    Target.Value = UCase(Left(Target.Value, 1)) & Mid(Target.Value, 2)

End Sub
I
Inguyone
Membre habitué
Membre habitué
Messages : 88
Inscrit le : 18 juin 2011
Version d'Excel : 2007 FR

Message par Inguyone » 26 novembre 2015, 07:19

Theze,

Merci pour cette réponse aussi rapide, sans vouloir abuser, peut-on étendre ce code aux colonnes 8,9 et 11.

Encore merci votre aide
I
Inguyone
Membre habitué
Membre habitué
Messages : 88
Inscrit le : 18 juin 2011
Version d'Excel : 2007 FR

Message par Inguyone » 26 novembre 2015, 08:10

Theze,

J'ai trouvé en adaptant ton code et un ancien que j'utilisais. Cela fonctionne très bien.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub
Select Case Target.Column
Case 8 To 9, 11 ' Colonne H, I et K
If Target.Value <> UCase(Target.Value) Then
Target.Value = UCase(Left(Target.Value, 1)) & Mid(Target.Value, 2)
End If
End Select
End Sub

Une fois de plus merci pour l'aide apportée.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message