1er mot = première lette en majuscule

Cougar

XLDnaute Impliqué
Bonsoir le forum,

J'ai trouvé ce code dans les archives de site :
ActiveCell.Value = Application.WorksheetFunction.Proper(ActiveCell.Value).

Ce code a pour effet de mettre la première lettre de tous les mots de la cellule en majuscule.

Ce que je recheche c'est de mettre le première lettre du premier mot de la cellule en majuscule seulement.

Comment faut-il écrire la ligne de code ?

Merci
 

Cougar

XLDnaute Impliqué
Re : 1er mot = première lette en majuscule

Salut Pierrot93

J'ai essayé en modifiant ta réponse.

Sub Macro1()
Dim ColonneG As Range
Set ColonneG = Range("Feuil1!g2:g" & [65536:65536].End(xlUp).Row)
Do Until ActiveCell = ""
ColonneG.Value = UCase(Mid(Range("ColonneG").Value, 1, 1)) & Mid(Range("ColonneG").Value, 2)
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Fonctionne pas ? Ma plage de cellule est G2 à la fin. L'erreur se trouve ???

Merci
 

abc

XLDnaute Impliqué
Re : 1er mot = première lette en majuscule

Bonsoir,
un code pas de moi.
N'oublie pas de modifier les cellules dans le code
Private Sub Worksheet_Change(ByVal Target As Range)
Dim maj As String
If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
If Target.Value = "" Then Exit Sub
maj = Left(Target, 1)
Target = UCase(maj) & Right(Target, Len(Target) - 1)
End If
End Sub

A +
 

Pierrot93

XLDnaute Barbatruc
Re : 1er mot = première lette en majuscule

Re

pour une boucle sur la colonne G, une autre solution :

Code:
Sub test()
Dim c As Range
With Sheets("Feuil1")
    For Each c In .Range("G2:G" & .Range("G65536").End(xlUp).Row)
        If Not IsEmpty(c.Value) Then c.Value = UCase(Mid(c, 1, 1)) & Mid(c.Value, 2)
    Next c
End With
End Sub

bonne journée
@+
 

Discussions similaires

Réponses
9
Affichages
457
Réponses
22
Affichages
1 K
Réponses
2
Affichages
154

Statistiques des forums

Discussions
312 163
Messages
2 085 860
Membres
103 006
dernier inscrit
blkevin