Re : ouvrir un fichier dans une fonction personnalisée
qu'à cela ne tienne :
Public Function cumulAP(codesasta As String, annee As Integer, UA As String, msr As Integer) As Double
Dim cpt As Integer
Dim cumulAnnPct As Double
Dim numligne As Integer
Dim valeur As Double
Dim Dercol As Integer
Dim myrange As Range
Dim monfic As String
cumulAnnPct = 0
'ouvrir fichier contenant les données de l'année à cumuler
monfic = "DonneesRegion" & annee & ".xls"
Dim lWorkbook As Workbook
Dim lFound As Boolean
lFound = False
For Each lWorkbook In Workbooks
If lWorkbook.Name = monfic Then
lFound = True
Exit For
End If
Next
If lFound = False Then
'Workbooks.Open Filename:="Z:\SADMREG\Contrôle-de-Gestion\SASTA\DonneesRegion" & annee & ".xls", UpdateLinks:=2, ReadOnly:=True
Workbooks.Open "c:\bdf\sata\edi_tmp\sasta.txt"
End If
Workbooks(monfic).Activate
Set myrange = ActiveSheet.Range("a3:n200")
With Workbooks(monfic).Sheets(UA)
MsgBox "fichier actif = " & ActiveWorkbook.Name
Dercol = msr + 1
For cpt = 2 To Dercol
valeur = Application.WorksheetFunction.VLookup(codesasta, myrange, cpt, False)
cumulAnnPct = cumulAnnPct + valeur
Next cpt
End With
'Workbooks(monfic).Close no
cumulAP = cumulAnnPct
End Function
je précise que j'ai d'abord tenté de trouver le numéro de ligne du code à rechercher afin de boucler sur cette même ligne pour calculer le cumul mais las ! pour ça que j'utilise le vlookup pour chaque mois !