VBA - plus petite valeur d'une matrice
Résolu
tomparis75
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
tomparis75 -
tomparis75 -
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
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
A voir également:
- VBA - plus petite valeur d'une matrice
- Petite amie virtuelle en français gratuit - Accueil - Intelligence artificielle
- Attribuer une valeur à une cellule texte excel ✓ - Forum Excel
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. quel nombre est dessiné en surbrillance ? ✓ - Forum Excel
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
2 réponses
Bonjour,
il est possible d'écrire une fonction mais je te propose
un exemple avec une Sub dans un module.
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
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
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!
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!