Je travaille sur un programme en VBA sous Excel 2010.

Ma feuille Excel comporte deux colonnes :

A8 à A 37 et B8 à B37

La première colonne comporte des noms de Directions (chaines de caractères)
La seconde colonne comporte des formules (une dans chaque case) qui se chargent de calculer la production de la Direction correspondante (valeurs entières).

Chaque colonne a un titre en entête, respectivement dans les cellules A8 et B8 ( "Direction" et "Production")

Pour pouvoir trier ces deux colonnes simultanément selon la production de chaque Direction, j'utilise le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Int_PremiereLigne = 8
Int_NbDirections = 29
 
  With FeuilleDirections
        .Activate
        .Visible = xlSheetVisible
        .Select
        .Range("A1").Select
 
       'Tri décroissant 
        .Range("A" & CStr(Int_PremiereLigne) & ":B" & CStr(Int_PremiereLigne + Int_NbDirections )).Sort Key1:=Range("B" & CStr(Int_PremiereLigne)), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
End With
Malheureusement, je constate que le premier tri ne se passe pas bien, car je trouve des Directions dont la production vaut 0 intercalées entre celles dont la production vaut 1. Sur des données bien triées, les valeurs de production à 0 devraient précéder les valeurs de production à 1.

Par contre, exécuter une deuxième fois le même tri me fournit un résultat correct.

Malgré de nombreuses recherches, je ne parviens pas à corriger ce problème. Merci de vos conseils et suggestions.