Re : Fonctions Excel vers VBA ?
Bonjour,
Ci-dessous un exemple qui permet de rendre variable le nom de fichier dans la formule :
Sub Test()
Chemin = "toto.xls"
ActiveCell.Formula = "=SUMIF([" & Chemin & "]feuil2!$L$3:$L$8078,analyse!$B$6,[" & Chemin & "]feuil2!$CY$3:$CY$8078)"
End Sub
ActiveCell peut etre remplacé par Range("C5")
Pour la 2eme :
Sub Test2()
ActiveCell.Formula = "=INDEX(ColID,MIN(IF((NUM<>"""")*(COUNTIF(analyse!$C43:C43,NUM)=0)*(ANA=analyse!$B$6),ROW(NUM))))&"""""
End Sub
Et :
Sub Test3()
ActiveCell.Formula = "=INDEX(NOM,MATCH($C44,NUM,0))"
End Sub
Sub Test4()
ActiveWorkbook.Names.Add Name:="ColID", RefersTo:="=OFFSET([nom_fichier.xls]feuil2!$A1,,,COUNTA([nom_fichier.xls]feuil2!$A1:$A15251)+1)"
End Sub
Enfin, on peut directement rendre variable le nom de fichier dans la feuille de calcul sans macro en utilisant INDIRECT :
=SOMME.SI(INDIRECT("["&A1&"]feuil2!$L$3:$L$8078");analyse!$B$6;INDIRECT("["&A1&"]feuil2!$CY$3:$CY$8078"))
Où A1 contient le nom du fichier par exemple : toto.xls