Bonjour,
Je suis en train de me faire des nœuds au cerveau depuis 2 jours.
Dans une macro, je filtre une colonne sur sa valeur max après avoir déterminé le max.
Les cases contenant les valeurs sont définie en tant que "standard" .
Déclarations:
Le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim Max As Variant 'Dim Vr As Variant Dim Ligne As Range Dim N As Integer Dim TabTemp As Variant Dim sht As Worksheet Dim MaPlage As Range, Monfiltrage As Range Dim derlig As Integer, dercol As Integer
Le problème est le suivant : Quand je filtre manuellement (données/filtrer): la valeur max affichée dans le filtre est de 4,1234. La macro détecte une valeur max à 4,1234567 qui est la valeur réelle(visible dans la barre de formule quand on sélectionne la case avec la souris) .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Set MaPlage = Range("Q5:Q" & derlig) Set Monfiltrage = Range("O4:AE4") Max = "" TabTemp = MaPlage.Value 'remplissage du tableau temporaire. For N = LBound(TabTemp) To UBound(TabTemp) 'on passe par un tableau temporaire car il y a des valeurs à N/A If TabTemp(N, 1) > Vr31 Then Vr31 = TabTemp(N, 1) '1 car tableau à une colonne Worksheets(Nom_feuille).Range("AI" & N + 4).Value = Vr31 'pour vérifier les valeurs max trouvées Worksheets(Nom_feuille).Range("AI2").Value = Application.WorksheetFunction.Max("AI5:AI" & derlig) ' Mais ne fonctionne pas End If Next N Max = Vr31 'filtre sur le max Monfiltrage.AutoFilter Field:=3, Criteria1:=Max, Operator:=xlAnd
Et donc le tri automatique par la macro, ne se fait pas (pas de case affichée).
J'ai essayé de déclarer les cases en tant que nombre avec 7 chiffres après la virgule, mais la macro fait n'importe quoi au niveau sélection.
Je fais ce type de filtrage sur plusieurs colonnes successives. Le nombre de chiffres après la virgule diffère selon les colonnes, mais aussi à l'intérieur d'une même colonne.. Aussi, je ne sais pas comment m'en sortir.
Merci d'avance pour vos réponses.
Partager