Formule matricielle et boucle

Bonjour,

Après avoir cherché sur le forum, je n'ai malheureusement pas trouvé de solution à mon problème.

Je souhaite déterminer la 2ème plus petite valeur d'une colonne selon une condition et répéter cette opération pour plusieurs colonnes.

En cherchant sur différents forums, j'ai vu que la formule matricielle PETITE.VALEUR correspondait à mon besoin.

Je n'arrive pas, en revanche, à transposer ma formule en VBA.

J'ai essayé la formule suivante mais j'ai une erreur :

'Conversion de mon numéro de colonne en lettre Function DecAlph(c2 As Integer) As String [COLOR="SeaGreen"] ' DecAlph = IIf(c2 < 703, IIf(c2 > 26, Chr((c2 - 1) \ 26 + 64), "") & _ IIf(c2, Chr(((c2 - 1) Mod 26) + 65), ""), "") End Function For C = 1 To 289 c2 = DecAlph(C) Vmin2 = Evaluate("={SMALL(IF" & c2 & "10:" & c2 & "19=1," & c2 & "20:" & c2 & "29,""""),2)}") F2.Cells(33, C) = Vmin2 Next C

J'ai par ailleurs essayé l’enregistrement de Macro afin de déterminer le code correspondant à ma formule et ai obtenu le résultat suivant :

F2.Cells(32, C).FormulaArray = "=SMALL(IF(R[-22]C:R[-13]C=1,R[-12]C:R[-3]C,""""),2)"

Je n'arrive à pas utiliser la fonction Evaluate correctement afin de pouvoir déterminer la valeur de ma cellule...

Auriez-vous une solution à ce problème ?

Merci d'avance !

Bonjour,

à tester,

Sub test()
C = 1
r1 = Range(Cells(1, C), Cells(10, C)).Address(0, 0)
r2 = Range(Cells(11, C), Cells(20, C)).Address(0, 0)
t = "SMALL(IF(" & r1 & "=1," & r2 & ",""""),2)"
v = Evaluate(t)
MsgBox v
End Sub

Bonjour

Ci-joint ton fichier test avec ta formule matricielle en VBA avec Evaluate ...pour ta ligne 23 ...

J'ai mis en commentaire tes instructions de la ligne 22 ...

En espèrant que cela t'aide

P.S. Salut Isa ...

Un grand merci à vous deux !

Je viens de tester les deux versions et cela fonctionne.

Merci pour tes remerciements ...

Re-bonjour,

Je pensais que ce sujet était résolu mais je rencontre un nouveau problème...

En intégrant cette partie du code dans une autre fichier (que je ne peux vous transférer pour des raisons de confidentialité), j'observe une erreur qui apparaît de manière assez aléatoire.

En exécutant le code, j'ai une erreur de type 2029 sur ma formule en question.

Si j'exécute ma Maccro, j'ai un bug sur la formule et obtiens la valeur "#NOM?".

Si j'essaye d'exécuter la Maccro du fichier "Test VBA Formule Matricielle V2" après avoir rencontré le bug sur mon fichier, j'ai le même problème et Excel n'arrive pas à lire la formule.

En revanche, si je ferme mes 2 fenêtres Excel et n'essaye que le code du fichier "Test VBA Formule Matricielle V2" sans essayer dans un premier temps mon fichier, la Maccro s'exécute normalement....

J'avoue être un peu perdu et ne pas comprendre l'origine de cette erreur...

Bonjour,

Si la structure de ton fichier réel n'est pas identique à celle que tu as postée ... un problème peut surgir ...

Il ne faut pas hésiter à joindre le fichier avec lequel tu rencontres un obstacle ...

Rechercher des sujets similaires à "formule matricielle boucle"