VBA

Bonjour tout le monde,

J'ai un tableau avec en colonne B des noms et en colonne C des prénoms (les 2 plages sont nommées) j'ai réussi déjà à faire en sorte que quand je tape le nom il se mette automatiquement en majuscule, et ce que je voudrais en fait c'est que dans la même macro (ou une autre) il puisse mettre la première lettre du prénom en majuscule mais toujours automatique dès que j'ai tapé le Prénom. Voici le code que j'ai utilisé pour les noms :

Private Sub Worksheet_Change(ByVal zz As Range)

On Error Resume Next

If Intersect(zz, [liste_noms]) Is Nothing Then Exit Sub

Application.EnableEvents = False

zz = UCase(zz)

Application.EnableEvents = True

End Sub

Je vous remercie d'avance de l'aide que vous pourrez m'apporter !!!

Bonjour,

edition :

Remplace ton code par celui -ci et dans lequel j'ai considéré que tu avais nommé ta liste des prénoms comme ceci -> "liste_prenoms"

Private Sub Worksheet_Change(ByVal zz As Range)
'Macro par Dan pour Tito - xl pratique le 10/05/08
Dim valeur As String
On Error GoTo message
If Not Intersect(zz, [liste_noms]) Is Nothing Then
Application.EnableEvents = False
zz = UCase(zz)
End If
If Not Intersect(zz, [liste_prenoms]) Is Nothing Then
Application.EnableEvents = False
valeur = Mid(zz, 2)
valeur = UCase(Mid(zz, 1, 1)) & valeur
zz = valeur
End If
 Application.EnableEvents = True
Exit Sub
message:
Application.EnableEvents = True
End Sub

A te relire

Dan

Super,

Merci beaucoup Dan (et aussi aux autres qui ont bien voulu jeter un coup d'œil), c'est tout à fait ce que je voulais.

Au plaisir. A+

3template.xlsx (10.86 Ko)

Bonsoir, Tito,

Bonsoir, Dan

une autre proposition quasiment identique, mais utilisant la fonction Proper :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union([liste_noms], [liste_prenoms])) Is Nothing Then
    Application.EnableEvents = False
    Select Case Target.Column
        Case [liste_noms].Column
            Target = UCase(Target)
        Case [liste_prenoms].Column
            Target = Application.Proper(Target)
    End Select
    Application.EnableEvents = True
End If
End Sub

Edit : pour simplification de code

Merci à toi aussi Felix,

J'ai testé, ce code fonctionne aussi très bien...

Bonne journée !!!

Rechercher des sujets similaires à "vba"