Help : index min si

Y compris Power BI, Power Query et toute autre question en lien avec Excel
A
Alex2
Membre habitué
Membre habitué
Messages : 94
Inscrit le : 28 avril 2012
Version d'Excel : 2010

Message par Alex2 » 5 avril 2016, 21:25

Bonsoir,

Je vous joint un fichier car un fichier vaut mieux qu'un long discours, pour résumer, je veux convertir en VBA les formules ci-dessous

{=SI(MIN(SI(($AI5:$AU5<=0)*($AI$3:$AU$3>=A$3)*($AI$3:$AU$3<=C$3);$AI5:$AU5))=0;"";MIN(SI(($AI5:$AU5<=0)*($AI$3:$AU$3>=A$3)*($AI$3:$AU$3<=C$3);$AI5:$AU5)))}

=SI(A5="";"";SI(PLAFOND(-A5;$U5)<$T5;$T5;PLAFOND(PLAFOND(-A5;$U5);$U5)))

{=SI(MIN(SI(($AI5:$AU5<0)*($AI$3:$AU$3>=A$3)*($AI$3:$AU$3<=C$3);$AI$3:$AU$3))=0;"";MIN(SI(($AI5:$AU5<0)*($AI$3:$AU$3>=A$3)*($AI$3:$AU$3<=C$3);$AI$3:$AU$3)))}

merci de votre aide précieuse
Pour ExcelPratique.xlsx
(33.49 Kio) Téléchargé 14 fois
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'575
Appréciations reçues : 755
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 6 avril 2016, 04:30

par apprentissage :
    Selection.FormulaArray = _
        "=IF(MIN(IF((RC35:RC47<0)*(R3C35:R3C47>=R3C[-2])*(R3C35:R3C47<=R3C),R3C35:R3C47))=0,"""",MIN(IF((RC35:RC47<0)*(R3C35:R3C47>=R3C[-2])*(R3C35:R3C47<=R3C),R3C35:R3C47)))"

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
A
Alex2
Membre habitué
Membre habitué
Messages : 94
Inscrit le : 28 avril 2012
Version d'Excel : 2010

Message par Alex2 » 7 avril 2016, 10:51

Bonjour,

pas beaucoup de réponse

SVP Help me
A
Alex2
Membre habitué
Membre habitué
Messages : 94
Inscrit le : 28 avril 2012
Version d'Excel : 2010

Message par Alex2 » 8 avril 2016, 16:39

Ne vous ennervez pas sur le sujet, j'ai trouvé
Sub ChercheDate() 'FONCTIONNE
Dim Rg As Range
Dim DateDébut As Date
Dim DateFin As Date
Dim X
Dim Y
Dim CptY
Dim CptX
Dim ACder
Dim QMult
Dim QMini
With Sheets("Feuil1")

For CptX = 5 To 41
For CptY = 1 To 16 Step 3
DateDébut = DateSerial(Year(.Cells(3, CptY)), Month(.Cells(3, CptY)), Day(.Cells(3, CptY)))
DateFin = DateSerial(Year(.Cells(3, CptY + 2)), Month(.Cells(3, CptY + 2)), Day(.Cells(3, CptY + 2)))
Set Rg = .Range("AI3:AU3")
X = Application.Match(CLng(DateDébut), Rg, 1)
Y = Application.Match(CLng(DateFin), Rg, 1)
Dim Col1
Dim Col2
Col1 = Split(Cells(1, X + 34).Address, "$")(1)
Col2 = Split(Cells(1, Y + 34).Address, "$")(1)
Dim ValeurMini 'As Long
If WorksheetFunction.Min(.Range(Col1 & CptX & ":" & Col2 & CptX)) < 0 Then
ValeurMini = WorksheetFunction.Min(.Range(Col1 & CptX & ":" & Col2 & CptX))
.Cells(CptX, CptY).Interior.ColorIndex = 4
If ValeurMini < 0 Then
.Cells(CptX, CptY) = ValeurMini
'===VALEUR A COMMANDER===
QMult = .Cells(CptX, 21)
QMini = .Cells(CptX, 20)
Dim MoinsValeurMini
MoinsValeurMini = ValeurMini * -1
ACder = WorksheetFunction.Floor(ValeurMini, QMult)
If ACder * -1 < QMini Then
ACder = QMini
Else
ACder = -WorksheetFunction.Floor(ValeurMini, QMult)
End If
.Cells(CptX, CptY + 1).Interior.ColorIndex = 4
.Cells(CptX, CptY + 1) = ACder
'===TROUVER LA DATE===
Dim Plage
Set Plage = .Range(Col1 & CptX & ":" & Col2 & CptX)
Plage.Select
Dim DateLiv
DateLiv = Plage.Find(ValeurMini).Column
DateLiv = .Cells(3, DateLiv - 1).Value
.Cells(CptX, CptY + 2).Interior.ColorIndex = 4
.Cells(CptX, CptY + 2) = DateLiv
'======================
End If
Else
End If
Next
Next
End With
End Sub
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message