• Initiateur de la discussion Initiateur de la discussion Goose
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Goose

XLDnaute Occasionnel
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:

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
étant novice en VBA, je sais simplement qu'il faut apparement modifier les lignes suivantes:

Code:
Nom = Left(.Value, InStr(1, .Value, " ") + 1) + "."
Nom = Application.WorksheetFunction.Proper(Nom)
pouvez vous m'aider ?
@+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
617
Réponses
15
Affichages
410
Réponses
5
Affichages
755
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
540
Réponses
4
Affichages
703
Réponses
3
Affichages
277
Réponses
1
Affichages
277
Retour