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 SubDonc, 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