VBA - plus petite valeur d'une matrice

Résolu
Bonjour,

je fais une macro vba dans laquelle j'ai une matrice intermédiaire qui contient une (ou plusieurs) valeur nulle, tout le reste est positif, et je voudrais prendre la plus petite valeur non nulle.

quelqu'un aurait une idée de comment le faire?

merci d'avance

2 réponses

  1. Bonjour,

    ta proposition me convient tout à fait. Je compte l'inclure dans une macro VBA, et la matrice dans laquelle je cehrche est une variable de type Array dans cette macro.

    En fait, mon idée de base était d'utiliser la fonction min() dans la macro, mais j'ai vite vu le problème qu'il me renverrait 0 à tous les coups...

    Mon problème est résolu en tous cas, merci beaucoup!
    0
    1. Bonjour,

      il est possible d'écrire une fonction mais je te propose
      un exemple avec une Sub dans un module.

      Sub PluPetiteValeur()
      Dim Cel As Variant
      Dim valeurMini As Variant
      Dim plage1 As Range
      Dim nbCol As Integer
      Dim NbLig As Integer
      
      Set plage1 = Range("B10:E13")
      
      valeurMini = plage1.Cells(1, 1)
      nbCol = plage1.Columns.Count
      NbLig = plage1.Rows.Count
      
      
      For i = 1 To nbCol
          For j = 1 To NbLig
              If plage1.Cells(i, j).Value < valeurMini And plage1.Cells(i, j).Value > 0 Then
              valeurMini = plage1.Cells(i, j).Value
              End If
          Next
      Next
          
          
      MsgBox valeurMini
      
      
      
      
      End Sub


      J'ai écris en "dur" la plage B10:E13 à titre d'exemple.
      je peux regarder pour l'écrire sous forme de fonction utilisable sur la feuille mais tu n'as rien précisé dans ta démarche. VBA ou Pas?
      j'ai une matrice intermédiaire signifie aussi bien l'utilisation d'un tableau ( variable de type tableau ...Array) qu'une utilisation d'une plage de cellule. C'est la raison pour laquelle je t'ai montré le principe.
      A+
      R
      0