Kième valeur plus petite >0

Bonjour à tous,

J'aurais besoin d'avoir une variable qui me donne la valeur de la kième valeur plus petite > à "0".

J'ai écris cette ligne de code en VBA mais j'ai une erreur :

NombreP = Application.WorksheetFunction.CountIf(Application.WorksheetFunction.Small(Rows(2), x), ">0")

x étant une variable qui me récupère la 1ere puis la 2eme .... petite valeurs > à "O".

Est ce que vous voyez ou se trouve mon erreur ?

bonjour

et si c'etait la grande quand on cherche dans les <0

cordialement

Pardon j'ai rectifié mon post précédent, je m'étais trompé de signe.

Je cherche avoir la plus petite valeur supérieur à zéro .

Bonjour,

Ta question est donc comment trouver la plus petite valeur positive ...

Mais quelle est ta plage de recherche ...???

Pourquoi ne pas poster la totalité de ta macro ...???

Quel rapport entre ta question ... et Countif ...???

Ci-dessous une macro à tester ...

Sub MinValPositive()
' Définir la plus petite valeur positive
Dim NombreP As Double
' Avec la Plage B2:R2 comme plage de référence
  With ActiveSheet
      NombreP = .Evaluate("MIN(IF(B2:R2" & ">0,B2:R2" & "))")
  End With
MsgBox NombreP
End Sub

En espérant que cela t'aide ...

Oui c'est bien ça, je souhaiterais avoir pour x= 1 to y

La plus petite valeur supérieur à 0

Ma plage de recherche est rows(2), j'ai fais un essai avec countif pour voir, mais effectivement pas très concluant.

For x = 1 To y 'boucle pour récupérer les valeurs les plus eleveées

         With Sheets("Feuil1").Activate

        'récupère la Xieme valeur la plus élevée dans la 2eme ligne
        NombreG = Application.WorksheetFunction.Large(Rows(2), x)
        NombreP = Application.WorksheetFunction.CountIf(Application.WorksheetFunction.Small(Rows(2), x), ">0")

        'recherche le numéro de la colonne pour la valeur trouvée
        ColonneG = Application.Match(NombreG, Rows(2), 0)
        colonneP = Application.Match(NombreP, Rows(2), 0)
        If x = y Then Exit Sub
        Else
        If Application.WorksheetFunction.Large(Rows(2), x) = Application.WorksheetFunction.Large(Rows(2), x + 1) Then Exit Sub
        If Application.WorksheetFunction.CountIf(Application.WorksheetFunction.Small(Rows(2), x), "<0") = Application.WorksheetFunction.CountIf(Application.WorksheetFunction.Small(Rows(2), x + 1), "<0") Then
        Exit Sub
        End with
        

Re,

As-tu testé la macro proposée dans mon précédent message ...???

La macro que vous m'avez présenté fonctionne mais je ne vois pas comment mettre une boucle en place avec qu'il scrute la 1ere puis la 2eme, 3 eme et ce jusqu'à la valeur y .

La macro que vous m'avez présenté fonctionne mais je ne vois pas comment mettre une boucle en place avec qu'il scrute la 1ere puis la 2eme, 3 eme et ce jusqu'à la valeur y .

Sub MinValPositive2()
Dim NombreP As Double
Dim x As Long
Dim y As Long
' Définir LES 5 Plus Petites Valeurs Positives
y = 5
' Avec la Plage B2:R2 comme plage de référence
For x = 1 To y
  With ActiveSheet
      NombreP = .Evaluate("Small(IF(B2:R2" & ">0,B2:R2" & ")," & x & ")")
      MsgBox NombreP
  End With
Next x
End Sub

En espérant que cela t'aide ...

si je veux indiquer rows(2) à la place de la plage de référence:

J'ai essayé de remplacer tout simplement mais sa bug :

NombreP = .Evaluate("Small(IF("Rows(2) & ">0,"Rows(2) & ")," & x & ")")

Bonsoir,

Déjà corriger la syntaxe :

NombreP = .Evaluate("Small(IF(" & Rows(2).Address & ">0," & Rows(2).Address & ")," & x & ")")

et t'assurer en maintenant le point devant Evaluate que tu réfères bien à un objet...

NB- avec Evaluate tu évalues le résultat d'une expression Excel, en l'occurrence une formule, cette formule doit être rédigée selon la syntaxe d'une formule Excel, non dans une syntaxe hybride mêlant la syntaxe formule Excel avec la syntaxe utilisation de fonction Excel en VBA...

Cordialement.

si je veux indiquer rows(2) à la place de la plage de référence:

J'ai essayé de remplacer tout simplement mais sa bug :

NombreP = .Evaluate("Small(IF("Rows(2) & ">0,"Rows(2) & ")," & x & ")")

Re,

Je tenais à souligner à quel point j’ai particulièrement apprécié ... tous tes remerciements...

Sa allait venir lors de mes prochains posts , mais effectivement un grand merci à vous pour votre aide.

Rechercher des sujets similaires à "kieme valeur petite"