Mettre les noms en maj et les premières lettres desprénoms en majuscule

Bonjour à tous

Je cherche a remplir des colonnes avec des noms une autre colonne avec des prénoms. En entrant les données dans ces cellules en minuscule, est il possible de les mettre automatiquement en majuscule les noms et les prénoms la 1ère lettre en majuscule

Exemple : j'entre comme donnée

dupont andré josée patrick emmanuel joseph et qu'elle se transforme en Dupont André Josée Patrick Emmanuel Joseph. le nombre de prénom varie selon les relevé.

pouvez-vous m'aider

cordialement

Bonjour,

sans passer par la fonction NOMPROPRE(), ce n'est pas possible, du moins pas à ma connaissance, à part en partant sur du VBA mais peu flexible, j'ai joins un exemple utilisant NOMPROPRE.

21classeur1.xlsx (10.40 Ko)

Bonjour à tous. Je te donne aussi une solution avec une formule personnalisée.
Dans les colonnes "Entrée" on saisit sans tenir compte des minuscules et majuscules.

Ce n'est qu'une idée.

25nomprenom.xlsm (15.67 Ko)

Bonsoir,

Si j'ai bien compris

Exemple : j'entre comme donnée

dupont andré josée patrick emmanuel joseph et qu'elle se transforme en Dupont André Josée Patrick Emmanuel Joseph. le nombre de prénom varie selon les relevé.

Alors peut-être comme ça...... valable actuellement pour la colonne A avec un code dans le mode même de la feuille

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, [a:a]) Is Nothing Then Target.Value = Application.Proper(Target.Value)
    Application.EnableEvents = True
End Sub

Slts

Bonsoir…

et 1 et 2 et 3

nomprenomcompose

bonjour

j'ai regardé vos réponse.

les nompropre et les majuscule c'est avec cela que je travaille. Le problème c'est qu'il faut que je les transforme sans formule - donc collage spécial et valeur c'est un peu lourd.

les deux propositions malheureusement je n'y comprends rien et je ne vois pas comment les intégrer dans ma feuille. je suis un débutant

Alors pouvez vous me donner plus d'info avec un petit fichier Excel actif pour comprendre ?

Encore mille merci pour votre aide à tous

cordialement

bonjour;

un test.....

Bonjour à tous,

Dans ce cas, il faut appliquer la proposition de Boss_68.

Pour cela, il faut activer l'onglet Développeur si ce n'est pas déjà fait : Allez dans l'onglet Fichier/Options/Personnaliser le ruban/Cochez Développeur.

Une fois fait, il faut se rendre sur ce nouvel onglet, ouvrir l'éditeur Visual Basic (alt + F11). A gauche se trouve la fenêtre de projets avec notamment les noms des feuilles du classeur. Il faut double-cliquer sur le nom de la feuille où seront saisis les noms.

Puis dans la fenêtre de code, il faut coller le code de Boss_68 :

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, [a:a]) Is Nothing Then Target.Value = Application.Proper(Target.Value)
    Application.EnableEvents = True
End Sub

qui porte sur la colonne A pour l'instant.

Vous pourrez alors faire des essais directement.

Cdlt,

Bonjour

Cela fonctionne mais le nom devrait être en majuscule et le prénom n'avoir que ça 1ère lettre et dans deux colonnes différentes

Autrement ça fonctionne

Merci

Bonjour,

Si vous mettez les noms et prénoms dans une même cellule, il est impossible de distinguer quel est le nom et quel est le prénom, sachant qu'il y a des noms composés parfois avec des particules, idem pour les prénoms, donc impossible de faire la distinction.

Si par contre, les noms sont dans une cellule et les prénoms dans une autre alors pour le nom en majuscule

si le nom est en A1: =MAJUSCULE(A1)

Pour les prénoms, la formule vous a déjà été donné:

=NOMPROPRE(A2)

Cdlt

Bonjour,

Voici un essai où le nom (ou plutôt la première partie du nom complet) est mise en majuscule.

Private Sub Worksheet_Change(ByVal Target As Range)
set r = intersect(target, columns(1))
Application.EnableEvents = False
if not r is nothing then
    for each cell in r
        if cell.value <> "" then
            t = split(application.proper(cell.value))
            t(0) = ucase(t(0))
            cell.Value = join(t) 
        end if
    next cell
end if
Application.EnableEvents = True
End Sub

Il faut donc saisir nom prénom pour que ça marche.

Comme l'a fait remarquer Arturo, VBA ne peut pas deviner ce qui est un prénom ou un nom. Donc, en cas de nom composé, il faut mettre des tirets (ou autre chose) mais pas d'espace.

Cdlt,

Bonjour

Mais le nom et le prénom sont dans des colonnes différentes. est ce possible avec une macro ?

merci

Cordialement

Ah d'accord, je n'avais pas compris. Oui c'est possible quand on connait les colonnes^^.

Edit : Voici un essai avec les noms et prénoms en colonne 1 et 2 :

Private Sub Worksheet_Change(ByVal Target As Range)
set rnom = intersect(target, columns(1))
set rprenom = intersect(target, columns(2))
Application.EnableEvents = False
if not rnom is nothing then
    for each cell in rnom
        if cell.value <> "" then cell.value = ucase(cell.value)
    next cell
end if
if not rprenom is nothing then
    for each cell in rprenom
        if cell.value <> "" then cell.value = application.proper(cell.value)
    next cell
end if
Application.EnableEvents = True
End Sub

Cdlt,

Merci à vous tous car vous faites un travail de ouf et merci à 3GB pour la solution qui fonctionne

mille merci

Cordialement

Merci du retour Jag !

Bonne continuation à vous !

Rechercher des sujets similaires à "mettre noms maj premieres lettres desprenoms majuscule"