VBA - plus petite valeur d'une matrice
Résolu
tomparis75
Messages postés
1
Statut
Membre
-
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
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Petite croix snap ✓ - Forum Snapchat
- Vous ne pouvez pas modifier une partie de matrice ✓ - Forum Excel
- Comment savoir qu'une personne nous a supprimé Snapchat ✓ - Forum Snapchat
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!