XL 2016 TRIER PLAGE

KTM

XLDnaute Impliqué
Bonsoir Cher Forum
Je voudrais faire un tri de mes données et j'ai élaboré ce code:
VB:
Sub TRIER()
Dim Lig As Variant

Lig = Application.Match(0, Range("A4:A14"), 0) + 2
If IsError(Lig) Then
Range("E1").Value = 14
Range("A4:D14").Sort Key1:=Range("A4"), Order1:=xlAscending
Else
Range("E1").Value = Lig
Range("A4:D" & Lig).Sort Key1:=Range("A4"), Order1:=xlAscending
End If
End Sub

Mais il ya erreur lorsque ma plage A4:A14 ne contient pas 0
 

Pièces jointes

  • Classeur1.xlsm
    15.7 KB · Affichages: 9

job75

XLDnaute Barbatruc
Bonsoir KTM,

Quand Lig peut être une valeur d'erreur il ne faut pas lui ajouter 2, donc :
VB:
Sub TRIER()
Dim Lig As Variant
Lig = Application.Match(0, Range("A4:A14"), 0)
If IsError(Lig) Then
    Range("E1").Value = 14
    Range("A4:D14").Sort Key1:=Range("A4"), Order1:=xlAscending
Else
    Range("E1").Value = Lig + 2
    Range("A4:D" & Lig + 2).Sort Key1:=Range("A4"), Order1:=xlAscending
End If
End Sub
A+
 

KTM

XLDnaute Impliqué
Bonsoir KTM,

Quand Lig peut être une valeur d'erreur il ne faut pas lui ajouter 2, donc :
VB:
Sub TRIER()
Dim Lig As Variant
Lig = Application.Match(0, Range("A4:A14"), 0)
If IsError(Lig) Then
    Range("E1").Value = 14
    Range("A4:D14").Sort Key1:=Range("A4"), Order1:=xlAscending
Else
    Range("E1").Value = Lig + 2
    Range("A4:D" & Lig + 2).Sort Key1:=Range("A4"), Order1:=xlAscending
End If
End Sub
A+
Merci job75
C'est tres juste
 

Statistiques des forums

Discussions
312 198
Messages
2 086 153
Membres
103 137
dernier inscrit
Billly