XL 2019 Majuscules ou Minuscules

pat66

XLDnaute Impliqué
Bonsoir le forum,

J'ai besoin d'aide car j'utilise la macro ci dessous qui fonctionne bien, mais mon problème est que la cellule D29 contient : Monsieur Et Madame

Est t'il possible de ne conserver les majuscules pour Monsieur et Madame, mais pas pour le : ET qui doit rester en minuscule car ce n'est pas très esthétique

Un grand merci

Pat66


VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then End
  If Not Application.Intersect(Target, Range("D29")) Is Nothing Then
    If Not IsEmpty(Target) Then
      Application.EnableEvents = False
      Target = WorksheetFunction.Proper(Target)  ' si première lettre en majuscule uniquement
'      Target.Value = UCase(Target.Value)   ' si tout en majuscules
      Application.EnableEvents = True
    End If
  End If
End Sub
 

pat66

XLDnaute Impliqué
Bonjour le fil, Bonjour job75

toujours aussi efficace, mille merci job75 c'est parfait

Dans le même esprit, j'ai aussi le problème avec Nom(S) au lieu de Nom(s)
Target = WorksheetFunction.Proper(Target)
Target = Replace(Target, " Et ", " et ")


Auriez vous une idée pour faire en sorte que le (S) reste en minuscule (s)

merci

Belle journée

Pat66
 
Dernière édition:

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour le fil, le forum
Bonjour le fil, Bonjour job75

toujours aussi efficace, mille merci job75 c'est parfait

Dans le même esprit, j'ai aussi le problème avec Nom(S) au lieu de Nom(s)
Target = WorksheetFunction.Proper(Target)
Target = Replace(Target, " Et ", " et ")


Auriez vous une idée pour faire en sorte que le (S) reste en minuscule (s)

merci

Belle journée

Pat66
@pat66 , job75 vous a déjà donné la solution,
vous rajoutez après
VB:
Target = Replace(Target, "(S)", "(s)")

Bien cordialement, @+
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
re,
effectivement cela fonctionne pour le Noms (s) mais pas pour le Prénom (S)
c'est un replace, cela fonctionne pour la chaîne entière à traiter, si le prénom est dans une autre cellule que D29, il faut adapter le code de départ en fonction pour traiter aussi la cellule concernée.

Cordialement, @+
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then End
  If Not Application.Intersect(Target, Range("D29")) Is Nothing Then 'cellules à traiter
    If Not IsEmpty(Target) Then
      Application.EnableEvents = False
      Target = WorksheetFunction.Proper(Target)  ' si première lettre en majuscule uniquement
      Target = Replace(Target, " Et ", " et ")
      Target = Replace(Target, "(S)", "(s)")
      Application.EnableEvents = True
    End If
  End If
End Sub
 

pat66

XLDnaute Impliqué
re,

j'ai trouvé la subtilité, il suffit de mettre un espace après Prénom (s) avant de validé la saisie

Sauf que je viens de lire de décortiquer ton explication et j'ai vu que pour le ("S") il n'y a pas d'espace entre la parenthèse et le guillemet par rapport au (" et " )

Problème résolu

merci à tous

cdt
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
242

Statistiques des forums

Discussions
314 647
Messages
2 111 533
Membres
111 197
dernier inscrit
john49