• Initiateur de la discussion Initiateur de la discussion natorp
  • 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 !

Re : Faire un tri...

Bonsoir natorp,

Essaye ce code et dis nous
VB:
Sub TriSpé()
  Dim DLig As Long, DligD As Long, Lig As Long
  Dim Agent As String, Inter As String, ForMat As String
  With Sheets("Rapport1")
    ' Récupérer la dernière ligne du tableau des résultats
    DligD = .Range("E" & Rows.Count).End(xlUp).Row
    ' Effacer d'abord le tableau des résultats
    If DligD > 1 Then .Range("E2:F" & DligD).ClearContents
    ' Récupérer la dernière ligne du tableau source
    DLig = .Range("B" & Rows.Count).End(xlUp).Row
    For Lig = 2 To DLig
      ' Récupérer les 2 valeurs de la ligne
      Inter = .Range("B" & Lig).Value
      Agent = .Range("C" & Lig).Value
      ' Créer la forumle matricielle
      ForMat = "=SUMPRODUCT((B$2:B$" & DLig & "=""" & Inter & """)*(C$2:C$" & DLig & "=""" & Agent & """))" _
        & "+SUMPRODUCT((B$2:B$" & DLig & "=""" & Inter & """)*(C$2:C$" & DLig & "<>""" & Agent & """))"
      If Application.Evaluate(ForMat) >= 2 Then
        DligD = .Range("E" & Rows.Count).End(xlUp).Row
        .Range("E" & DligD + 1) = .Range("B" & Lig)
        .Range("F" & DligD + 1) = .Range("C" & Lig)
      End If
    Next Lig
  End With
End Sub

Voir fichier joint

A+
 

Pièces jointes

- 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
2
Affichages
242
Réponses
3
Affichages
178
Réponses
5
Affichages
314
Réponses
3
Affichages
220
Réponses
1
Affichages
396
Réponses
6
Affichages
267
Retour