VBA :Tri lignes avec le numéro le plus grand

Résolu
Sapinours Messages postés 4 Statut Membre -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis débutante en la matière et je ne sais pas comment me débloquer.

Voila. Il y a plusieurs lignes pour un même matricule, avec les heures qu'ils a effectuer.

Je cherche a obtenir une ligne par matricule mais je veux la ligne où il y a le nombre d'heures le plus élevé.

Le problème c'est que je peux avoir plusieurs lignes pour un matricule.

Voila ce que j'ai fais

Sub Macro1()

For x = 2 To 10000

Numeroemploye = Cells(x, 3).Value

If Cells(x + 1, 3).Value = Numeroemploye Then

'Correspond aux nombres d'heures qui sont en colonne 11.
Nombre1 = Cells(x + 1, 11).Value
nombre2 = Cells(x, 11).Value

End If
'Si le nombre d'heures de la ligne 1 est supérieur à celle de la ligne 2 alors supprimer la ligne
If Nombre1 >= nombre2 Then
Cells(x, 11).Select
Selection.EntireRow.Delete

End If

If nombre2 >= Nombre1 Then
Cells(x + 1, 11).Select
Selection.EntireRow.Delete

End If

Next

End Sub

1 réponse

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonsoir,

    Essaie ce code :

    Private Sub Macro1()
    
    For x = 10000 To 2 Step -1
        If Cells(x, 3).Value = Cells(x + 1, 3).Value Then
            If Cells(x, 11) >= Cells(x + 1, 11).Value Then
                Cells(x + 1, 11).EntireRow.Delete
            Else
                Cells(x, 11).EntireRow.Delete
            End If
        End If
    Next x
    
    End Sub
    

    Patrice
    0
    1. Sapinours Messages postés 4 Statut Membre
       
      Merci beaucoup !! Ca fonctionne !!
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      De rien, avec plaisir
      0