Nom d'onglets + Initiale du prénom

Bsr à tous,

J'aimerai modifier un bout de code (surligner en vert):

Sub Indiv()
Dim Nom As String
Dim lig As Long, Lig1 As Long, Lig2 As Long

    Application.ScreenUpdating = False
    With Sheets("Individuel").Range("C2")
      If InStr(1, .Value, " ") < 1 Then Exit Sub
      Nom = Left(.Value, InStr(1, .Value, " ") + 1) + "."
      Nom = Application.WorksheetFunction.Proper(Nom)
    End With
...

par celui ci:

Nom = WorksheetFunction.Proper(Nom) & " " & Left(Prenom, 1) & "."

mais je n'y arrive pas !!

comment faire ?

merci d'avance

@+

Bonsoir,

Comment récupères-tu le nom si tu supprime la ligne ?

Nom = Left(.Value, InStr(1, .Value, " ") + 1) + "."

Cette ligne de code vérifie qu'il y ai au moins 1 espace dans la cellule et si pas le cas, fin de procédure :

If InStr(1, .Value, " ") < 1 Then Exit Sub

Donc, j'en conclus que dans ta cellule tu dois avoir seulement le nom de famille et dans ce cas, si il n'est pas composé (donc pas d'espace) tu ne dépassera jamais la ligne de code ci-dessus.

Avec la ligne de code ci-dessous, je suppose que tu ne souhaite pas mettre en majuscule l'initiale du prénom :

Nom = WorksheetFunction.Proper(Nom) & " " & Left(Prenom, 1) & "."

Il nous faut un peu plus d"explications sur la finalité de ce que tu veux.

Hervé.

Bjr Hervé,

en faite, cette macro ventile actuellement des résultats dans des onglets (un onglet par joueur) qui sont nommés sous la forme suivante: "DUPONT J."

Maintenant, ayant depuis peu, deux joueurs avec le même nom et les mêmes initiales de prénom, je dois adapter cette macro en fonction d'un nouveau format >>"DUPONT Je."

de plus, je viens de me rendre compte que cette macro ne gére pas les noms composés du genre "VAN HALEN J." !!!

étant novice en VBA, peux tu m'aider ?

@+

pour info, voici la macro en entier:

Sub Indiv()
Dim Nom As String
Dim lig As Long, Lig1 As Long, Lig2 As Long

    Application.ScreenUpdating = False
    With Sheets("Individuel").Range("C2")
      If InStr(1, .Value, " ") < 1 Then Exit Sub
      Nom = Left(.Value, InStr(1, .Value, " ") + 1) + "."
      Nom = Application.WorksheetFunction.Proper(Nom)
    End With
    With Sheets("Individuel")
        lig = .Range("C65536").End(xlUp).Row
        .Range("B5:J" & lig).Copy
    End With
    With Sheets(Nom)
        .Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormats
        .Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
        Lig1 = .Range("A65536").End(xlUp).Row
        Lig2 = .Range("K65536").End(xlUp).Row + 1
        .Range("A4:I" & Lig1).Validation.Delete
        Range(.Range("A4"), .Range("I" & Lig1)).Sort Key1:=.Range("A4"), order1:=xlAscending
        If Lig1 > Lig2 - 1 Then
        Range(.Range("K" & Lig2 - 1), .Range("N" & Lig2 - 1)).AutoFill _
        Destination:=Range(.Range("K" & Lig2 - 1), .Range("N" & Lig1)), Type:=xlFillDefault
    End If
    End With
    Sheets(Nom).Activate
    Rows("2:70").Select
    Selection.RowHeight = 12.75
    Range("A1").Select
    Sheets("Individuel").Activate
    Range("C2").Select
    Application.ScreenUpdating = True
End Sub
Rechercher des sujets similaires à "nom onglets initiale prenom"