XL 2019 Majuscules ou Minuscules

  • Initiateur de la discussion Initiateur de la discussion pat66
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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:
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, @+
 
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
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
14
Affichages
248
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
318
Réponses
1
Affichages
348
Réponses
4
Affichages
223
Retour