Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

2e plus petite variable

julien051

XLDnaute Nouveau
Bonjour a tous,

Voilà mon souci, j'ai 5 variables déclaré en as double (valeur décimale) qui sont CC1,CC2,CC3,CC4,CC5.
Leur valeurs sont variables en fonction de optionbutton coché au préalable.

Ma question est la suivante, comment peut on simplement déterminer la plus petite valeur et la deuxieme plus petite valeur? Comme le ferai la fonction petite valeur.

PS je ne veux pas passé par une feuille excel en mettant les valeur dans les cellule, car c'était les cas avant mais j'essais de mettre tout mon fichier le plus possible en VBA.

Par avance merci de vos réponse.
 

mromain

XLDnaute Barbatruc
Re : 2e plus petite variable

Bonjour julien051 et bienvenue sur le forum,
Bonjour le forum

Voici un essai en passant l'ensemble des valeurs dans un tableau pour ensuite pouvoir trier les données :
VB:
Public Sub Test()
Dim tabDbl(1 To 5) As Double, i As Long, j As Long, tmpDbl As Double
    
    'mettre les valeurs dans un tableau
     tabDbl(1) = 12.5
    tabDbl(2) = 7.3
    tabDbl(3) = 8.9
    tabDbl(4) = 15.2
    tabDbl(5) = 3.7
    
    'trier les valeurs en ordre croissant
     For i = LBound(tabDbl) To UBound(tabDbl) - 1
        For j = i + 1 To UBound(tabDbl)
            If tabDbl(j) < tabDbl(i) Then
                tmpDbl = tabDbl(j)
                tabDbl(j) = tabDbl(i)
                tabDbl(i) = tmpDbl
            End If
        Next j
    Next i
    
    'afficher la deuxième plus petite valeur
     MsgBox tabDbl(2)
End Sub

A+
 

Hervé

XLDnaute Barbatruc
Re : 2e plus petite variable

salut

une autre solution possible :

Code:
tabDbl(1) = 12.5
    tabDbl(2) = 7.3
    tabDbl(3) = 8.9
    tabDbl(4) = 15.2
    tabDbl(5) = 3.7
    
With Application.WorksheetFunction
    MsgBox .Small(tabDbl, 2) 'petite valeur
    MsgBox .Min(tabDbl) 'min
End With

a plus
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…