VBA :Tri lignes avec le numéro le plus grand
Résolu
Sapinours
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 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
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
A voir également:
- VBA :Tri lignes avec le numéro le plus grand
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
1 réponse
Bonsoir,
Essaie ce code :
Patrice
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
Sapinours
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
Merci beaucoup !! Ca fonctionne !!
Patrice33740
Messages postés
8561
Date d'inscription
Statut
Membre
Dernière intervention
1 780
De rien, avec plaisir