Bjr le forum,
j'ai une macro qui ventile actuellement des résultats dans des onglets (un onglet par joueur) qui sont nommés sous la forme suivante: "DUPONT J." ou "DURAND B." etc..
Depuis peu, je me trouve avec 2 joueurs de même nom avec les mêmes initiales de prénom, je dois donc adapter cette macro en fonction d'un nouveau format >> "DUPONT Je." ou "DUPONT Ja."
de plus, je viens de me rendre compte que cette macro ne gére
pas les noms composés du genre "VAN HALEN J." !!!
voici la macro:
étant novice en VBA, je sais simplement qu'il faut apparement modifier les lignes suivantes:
pouvez vous m'aider ?
@+
j'ai une macro qui ventile actuellement des résultats dans des onglets (un onglet par joueur) qui sont nommés sous la forme suivante: "DUPONT J." ou "DURAND B." etc..
Depuis peu, je me trouve avec 2 joueurs de même nom avec les mêmes initiales de prénom, je dois donc adapter cette macro en fonction d'un nouveau format >> "DUPONT Je." ou "DUPONT Ja."
de plus, je viens de me rendre compte que cette macro ne gére
pas les noms composés du genre "VAN HALEN J." !!!
voici la macro:
Code:
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
Code:
Nom = Left(.Value, InStr(1, .Value, " ") + 1) + "."
Nom = Application.WorksheetFunction.Proper(Nom)
@+
Dernière édition: