Rechercher dans ce blog

Nombre total de pages vues (en milliers)

NOMS ET PRENOMS



MISE EN ORDRE DES NOMS ET PRÉNOMS

Les noms/prénoms sont inscrits dans la colonne A dans un ordre différent.
(Attention tous les NOMS doivent être en majuscule )

1) Choix d'une nouvelle liste en colonne B avec l’ordre suivant :  Prénom & NOM

Inscrivez le code suivant en B1:

=SI(CODE(STXT(A1;2;1))>=97;A1;STXT(A1;EQUIV(FAUX;EXACT(STXT(A1;LIGNE($1:$255);3);MAJUSCULE(STXT(A1;LIGNE($1:$255);3)));0)+1;999)&" "&GAUCHE(A1;EQUIV(FAUX;EXACT(STXT(A1;LIGNE($1:$255);3);MAJUSCULE(STXT(A1;LIGNE($1:$255);3)));0)))
 


 Positionnez vous dans la barre de formule puis validez avec les touches  maj+ctrl+entrée :
 
 

Résultat :









Si vous maitrisez VBA vous pouvez utiliser cette macro pour mettre les NOM et prénom en colonne B


Sub INVERSER_NOM_PRENOM()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim splitName() As String
    Dim firstName As String
    Dim lastName As String

    ' Définir la feuille de calcul
    Set ws = ActiveSheet
    ' Définir la plage de cellules
    Set rng = ws.Range("A1:A100") ' Remplacez par la plage de cellules appropriée

    ' Boucle à travers chaque cellule de la plage
    For Each cell In rng
        ' Sépare le nom et le prénom
        splitName = Split(cell.Value, " ")
        
        ' Assurez-vous qu'il y a un nom et un prénom
        If UBound(splitName) > 0 Then
            ' Vérifie si le premier caractère du premier mot est en minuscule (code ASCII >= 97)
            If Asc(Mid(splitName(0), 2, 1)) >= 97 Then
                firstName = splitName(0)
                lastName = UCase(splitName(1))
            Else
                firstName = splitName(1)
                lastName = UCase(splitName(0))
            End If
            
            ' Écrire le prénom et le nom en majuscules dans la colonne B
            cell.Offset(0, 1).Value = lastName & " " & firstName
        End If
    Next cell
End Sub

Ou cette macro pour mettre les NOMS et prénoms dans la colonne où est sélectionnée une cellule :

Sub INVERSER_NOM_PRENOM()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim splitName() As String
    Dim firstName As String
    Dim lastName As String
    Dim Colonne As Integer

    ' Définir la feuille de calcul
    Set ws = ActiveSheet

    ' Définir la plage de cellules
    Set rng = ws.Range("A1:A100") ' Remplacez par la plage de cellules appropriée

    ' Obtenir la colonne de la cellule sélectionnée
    Colonne = ActiveCell.Column

    ' Boucle à travers chaque cellule de la plage
    For Each cell In rng
        ' Sépare le nom et le prénom
        splitName = Split(cell.Value, " ")
        
        ' Assurez-vous qu'il y a un nom et un prénom
        If UBound(splitName) > 0 Then
            ' Vérifie si le premier caractère du premier mot est en minuscule (code ASCII >= 97)
            If Asc(Mid(splitName(0), 2, 1)) >= 97 Then
                firstName = splitName(0)
                lastName = UCase(splitName(1))
            Else
                firstName = splitName(1)
                lastName = UCase(splitName(0))
            End If
            
            ' Écrire le prénom et le nom en majuscules dans la colonne spécifiée
            cell.Offset(0, Colonne - 1).Value = lastName & " " & firstName
        End If
    Next cell
End Sub

2) Choix d'une nouvelle liste en colonne C avec l’ordre suivant :  NOM & Prénom

Inscrivez le code suivant en C1

=SI(CODE(STXT(A1;2;1))>=97;STXT(A1;EQUIV(VRAI;EXACT(STXT(A1;LIGNE($1:$255);3);MAJUSCULE(STXT(A1;LIGNE($1:$255);3)));0)+1;999)&" "&GAUCHE(A1;EQUIV(VRAI;EXACT(STXT(A1;LIGNE($1:$255);3);MAJUSCULE(STXT(A1;LIGNE($1:$255);3)));0));A1)


Même procédure que précédemment, puis valider avec maj+ctrl+entrée :

 

Résultat :









Si vous maitrisez VBA vous pouvez utiliser cette macro inverser les NOMS et Prénoms (exemple ici pour la colonne A  :

Function InverserNomPrenom(cell As Range) As String
    Dim texte As String
    Dim i As Integer
    Dim position As Integer
    
    texte = cell.Value
    position = 0
    
    ' Trouver la position du premier caractère majuscule après le premier caractère
    For i = 2 To Len(texte)
        If Asc(Mid(texte, i, 1)) >= 65 And Asc(Mid(texte, i, 1)) <= 90 Then
            position = i
            Exit For
        End If
    Next i
    
    ' Si une position a été trouvée, inverser le nom et le prénom
    If position > 0 Then
        InverserNomPrenom = Mid(texte, position) & " " & Left(texte, position - 1)
    Else
        InverserNomPrenom = texte
    End If
End Function

Sub AppliquerInversion()
    Dim cell As Range
    Dim plg As Range
    
    ' Définir la plage de cellules à traiter
    Set plg = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    
    ' Appliquer l'inversion à chaque cellule de la plage
    For Each cell In plg
        cell.Value = InverserNomPrenom(cell)
    Next cell
End Sub


EXTRAIRE LES INITIALES des NOMS ET PRÉNOMS d'une liste : 

Les noms/prénoms sont inscrits dans la colonne A dans un ordre différent.

En A1   Patrick SAUVAGE  et en B1 la formule suivante :
=GAUCHE(A1;1)&STXT(A1;CHERCHE(" ";A1)+1;1)
Résultat : PS

FONCTION ExtraireInitiale

Function ExtraireInitiale(cell As Range) As String
    Dim splitName() As String
    Dim firstNameInitial As String
    Dim lastNameInitial As String

    ' Sépare le nom et le prénom
    splitName = Split(cell.Value, " ")
    
    ' Assurez-vous qu'il y a un nom et un prénom
    If UBound(splitName) > 0 Then
        ' Obtenez la première lettre du prénom et du nom
        firstNameInitial = Left(splitName(0), 1)
        lastNameInitial = Left(splitName(1), 1)
        
        ' Retourne les initiales
        GetInitials = firstNameInitial & lastNameInitial
    End If
End Function



Ceci n'est valable que dans le cadre d'un prénom associé à un nom sans particule donc dans le cas où on a  Rénée Le Pape ... c'est il faut changer la formule  :
=GAUCHE(A1;1)&STXT(A1;CHERCHE(" ";A1)+1;1)&SI(ESTERREUR(STXT(A1;CHERCHE(" ";A1;CHERCHE(" ";A1)+1)+1;1));"";STXT(A1;CHERCHE(" ";A1;CHERCHE(" ";A1)+1)+1;1))

Résultat : RLP

Pour information la fonction "CHERCHE" détermine la position du caractère "espace" dans la cellule, cette position est alors utilisée par la fonction STXT(+1) qui ramène le caratère situé juste après l'espace.


SUPPRIMER les titres d'un nom dans une CELLULE (Mr, Mme et Mlle) :

Les titres et les noms sont inscrits dans la colonne A.

En A1   Mr DURAND  et en B1 la formule suivante :
=SI(OU(GAUCHE(A1;2)="Mr";GAUCHE(A1;4)="Mlle";GAUCHE(A1;3)="Mme");DROITE(A1;NBCAR(A1)-TROUVE(" ";A1));A1))
Résultat : DURAND

Vous pouvez modifier les titres dans la formule ou ajouter des titres, voici des exemple d'abréviations :
Terme Abréviation
Madame Mme ou Mme
Mesdames Mmes ou Mmes
Mademoiselle Mlle ou Mlle
Mesdemoiselles Mlles ou Mlles
Monsieur M.
Messieurs MM.
Veuve Vve ou Vve
Docteur Dr ou Dr
Docteurs Drs ou Drs
Professeur Pr ou Pr
Professeurs Prs ou Prs
Maître Me ou Me
Maîtres Mes ou Mes
Monseigneur Mgr ou Mgr

SUPPRIMER les INITIALES du prénom dans une CELLULE  :

Les initiales des prénoms et les noms sont inscrits dans la colonne A.

En A1   P. DURAND  et en B1 la formule suivante :
=STXT(A1;4;255))


Résultat : DURAND
Attention le chiffre entre la cellule et le chiffre 255, diffère selon le nombre d'initiale et d'espace avant le nom.

A vous de jouer...
Emile @+




Aucun commentaire :

Enregistrer un commentaire

Pour vous aider à publier votre commentaire, voici la marche à suivre :
1) Ecrivez votre texte dans le formulaire de saisie ci-dessus
2) Si vous avez un compte, vous pouvez vous identifier dans la liste déroulante Commentaire
Sinon, vous pouvez saisir votre nom ou pseudo par Nom/URL
3) Vous pouvez, en cliquant sur le lien S'abonner par e-mail, être assuré d'être avisé en cas d'une réponse
4) Cliquer sur Publier enfin.

Le message sera publié après modération.
Merci