Première lettre de chaque cellule en majuscule

Ce code est sensé afficher la première lettre de chaque cellule en majuscule, hélas cela ne marche pas

Que manque t'il, nom du fichier ou autre?

Private Sub Worksheet_Change(ByVal Target As Range)

If Selection.Count > 1 Then Exit Sub

If Target.Value >= "a" And Target.Value <= "z" Then

Target.Value = Chr(-32 + Asc(Left$(Target.Value, 1))) & Right$(Target.Value, Len(Target.Value) - 1)

End If

End Sub

merci de votre aide

Bonjour

Essayes

Private Sub Worksheet_Change(ByVal Target As Range)
  If Selection.Count > 1 Then Exit Sub
  Application.EnableEvents = False
  Target = Application.Proper(Target)
  Application.EnableEvents = True
End Sub

cela ne marche pas (mis dans VBAProject Module2 est ce la cause?)

merci quand même

cordialement

Bonjour seychelles85,

Bonjour Banzai64,

Worksheet.Change est un événement de la feuille de calcul.

Le code doit être placé dans le module de la feuille concernée (sous Microsoft Excel Objets / Feuil1 par exemple).

A+

Bonjour a tout le monde

le code marche bien pour une seule feuille

mais comment faire pour tout le classeur ?

Merci

Bonsoir

Macro à placer dans le module ThisWorkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  If Selection.Count > 1 Then Exit Sub
  Application.EnableEvents = False
  Target = Application.Proper(Target)
  Application.EnableEvents = True
End Sub

N'oublies pas d'enlever la macro dans le module de la feuille

c'est plus que parfait

et si on compliquait le problème?

Par exemple toujours la première lettre en majuscule "sauf si " le premier caractère de la cellule est un chiffre comme par exemple une adresse.

Exemple : 5 rue du genou, dans ce cas complexe comment éviter que la première lettre de "rue "ne soit pas en "majuscule" ce qui est effectivement le cas avec l'excellent code transmis.

C'est juste pour pousser le bouchon un peu plus loin - interdit de se prendre la tête

bon week end

Cordialement

Seychelles85

Bonsoir aussi

Une solution à tester

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Tablo
Dim I As Integer

  If Target.Count > 1 Then Exit Sub
  Application.EnableEvents = False
  Tablo = Split(Target)
  For I = 0 To UBound(Tablo)
    If Len(Tablo(I)) > 3 Then         ' 3 caractères maxi
      Tablo(I) = Application.Proper(Tablo(I))
    End If
  Next I
  Target = Join(Tablo, " ")
  Application.EnableEvents = True
End Sub

Défi relevé

on s'incline devant la compétence

merci

Rechercher des sujets similaires à "premiere lettre chaque majuscule"