ouvrir un fichier dans une fonction personnalisée

  • Initiateur de la discussion Initiateur de la discussion Poutch
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Poutch

XLDnaute Nouveau
Hello!

j'ai écrit une fonction qui calcule le cumul d'une donnée pour une unité, un mois sous revue et une année renseignés par l'utilisateur. En testant sous VBA, ça marchait du tonnerre (j'ai qd même sué de grosses gouttes avec vlookup et le fait que mon fichier base (où se trouve les données à cumuler) soit une donnée variable mais bon.
Quand j'ai voulu la tester dans une feuille de calcul excel, #valeur ! aprés débogage, le fichier base ne s'ouvre pas ! ni même n'importe lequel d'ailleurs, l'appli passe dessus mais ne fait rien.
j'ai rebooté le pc au cas où excel aurait pris un grain, rien de changé. Quelqu'un a une piste ?
 
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 !
 
Re : ouvrir un fichier dans une fonction personnalisée

Re,

en fait tu ne peux ouvrir ou activer de classeur via une fonction executée à partir d'une feuille de calcul, une fonction est faite pour renvoyée un résultat... enfin me semble t-il....
 
Re : ouvrir un fichier dans une fonction personnalisée

of course, ma fonction donne un résultat ! C'est le cumul des valeurs du code indiqué par l'utilisateur pour une année donnée (la fonction doit ouvrir le fichier comprenant les données).

Dois-je passer par un recorset ?
 
Re : ouvrir un fichier dans une fonction personnalisée

je me réponds mais ça peut aider quelqu'un d'autre : il fallait bien utiliser un recordset.

Merci à ce forum d'exister et à Pierrot93 de m'avoir aidé. J'ai également trouvé des tutoriels très intéressants.
Je reviendrai !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour