XL 2010 Pb formule dans Macro

NICOALBERT

XLDnaute Occasionnel
Bonsoir le forum,

Je vient vers vous car j'ai un soucis avec la macro suivante .

With Sheets("QT").[A1].CurrentRegion
.Columns(13).Name = "ColM" 'nomme la plage "Score"
.Columns(7).Name = "ColG" 'nomme la plage "Equipe"
.Columns(5).Name = "ColE" 'nomme la plage "Saison"
.Columns(18).Name = "ColR" 'nomme la plage "Mj/an"
End With

With Sheets("Formule") 'Saison 2017_2018
.[B32].FormulaArray = "=INDEX(ColM,MATCH(1,IF(ColG=$B$30,IF(ColE=$A$32,IF(ColR=B31,1))),0))"
.[B32].Copy .[C32:K32]
'.[B32:K32] = .[B32:K32].Value 'supprime les formules
End With

lorsque je la lance ça m'affiche #N/A :mad:.

Lorsque je modifie cette ligne : .[B32].FormulaArray = "=INDEX(ColM,MATCH(1,IF(ColG=$B$30,IF(ColE=$A$32,IF(ColR=""3"",1))),0))"
Je remplace B31 par la valeur de la cellule ici "3".

Elle fonctionne sauf que cela indique la même valeur sur toute la ligne sélectionnée (B32 à K32) .

Je ne sait pas si je suis très clair :oops:.

Je vous joint un exemple.

Cdlt Nicoalbert7608058
 

Pièces jointes

  • Classeur1.xlsm
    66.6 KB · Affichages: 8

patricktoulon

XLDnaute Barbatruc
bonsoir
je ne suis pas sur du sens de cette formule
en tout cas 3 SI sans else ca me parait bizarre
si tu disais textuellement ce que tu souhaite faire ?
si c'est l'index de ligne de la colM ou les 3 arguments dans les colonnes nommées soit présents ,la formule c'est pas du tout ca
 

NICOALBERT

XLDnaute Occasionnel
Bonjour patricktoulon , le Forum ,

En fait ce que je cherche à faire c'est dans la cellule B32 une recherche du score correspondant à 3 conditions .

La recherche se fait par rapport à la feuille "QT".

Les 3 conditions sont :
Equipe (en B30 , Colonnes G de la Feuille "QT")
Saison (en A32 , Colonne E dans "QT")
N° de match correspondant (en B31 , Colonne R dans "QT")

Ici dans l'exemple le score du "3"ème Match pour l'equipe "Brooklyn Nets" de la saison "2017_2018" est de 116 Points .

et ainsi de suite pour la cellule C32 , D32 .......K32.

cdlt Nicoalbert
 

Bebere

XLDnaute Barbatruc
bonjour
un exemple à fignoler
VB:
Sub SaisonEQ1()

    Application.ScreenUpdating = False
    Application.EnableEvents = False
    a = Array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
    With Sheets("QT")
        .Range("M2:M524").Name = "ColM"    'nomme la plage "Score"
        .Range("G2:G524").Name = "ColG"    'nomme la plage "Equipe"
        .Range("E2:E524").Name = "ColE"    'nomme la plage "Saison"
        .Range("R2:R524").Name = "ColR"    'nomme la plage "Mj/an"
    End With

    With Sheets("Formule")    'Saison 2017_2018
        g = .[B30]
        e = .[A32]
        For i = LBound(a) To UBound(a)
            .Cells(32, i + 2) = Evaluate("SumProduct((ColE=""" & e & """)*(ColG=""" & g & """)*(ColR=""" & a(i) & """)*ColM)")
        Next
    End With

    Application.EnableEvents = True
    Application.ScreenUpdating = True

End Sub
 

Discussions similaires

Réponses
8
Affichages
666

Statistiques des forums

Discussions
312 304
Messages
2 087 068
Membres
103 453
dernier inscrit
Choupi