Bonjour,
J'espère ne pas créer de doublons de post (je n'ai pas trouvé de post similaire à mon problème), sinon veuillez m'excuser..
Dans le code ci-dessous, je développe une procédure qui permet de calculer des déciles (en fonction des secteurs), à partir d'une base de données. cf. PJ
J'ai donc créé plusieurs fonctions qui permettent d'aboutir à mes fins et 1 sub qui appelle chacune de ces fonctions. Toutes les fonctions "fonctionnent". Cependant lorsque je lance la procédure principale, j'ai l'erreur : Type d'argument ByRef incompatible qui apparait...
Je ne suis pas en explicit..
Merci d'avance pour le temps que vous y accorderez,
Alexandre
Sub decile()
Dim matrice As Variant
matrice = Range("A1").CurrentRegion.Value
Dim ticker, secteur As String
For ligne = 2 To UBound(matrice, 1)
ticker = matrice(ligne, 1)
secteur = valeur(matrice, ticker, "Secteur")
'[Surligner]Le message d'erreur apparait à Ticker ci dessus [/Surligner]
'
Dim first_EBIT, first_CA, last_P2B, last_EV_EBITDA, last_CF As Long
Dim col_SP, col_SE, col_LBO, ligne_ticker As Long
'Appel de toutes les fonctions :
col_SP = numero_de_colonne(matrice, "Note SP")
col_SE = numero_de_colonne(matrice, "Note SE")
col_LBO = numero_de_colonne(matrice, "Note LBO")
ligne_ticker = numero_de_ligne(matrice, ticker)
first_EBIT = firstdecile(matrice, secteur, "EBIT")
first_CA = firstdecile(matrice, secteur, "Revenu")
last_P2B = lastdecile(matrice, secteur, "BEst P/Act net:Y")
last_EV_EBITDA = lastdecile(matrice, secteur, "EV/EBITDA")
last_CF = lastdecile(matrice, secteur, "FCF:Y")
'Si critère respecté alors note associée augmente
If valeur(matrice, ticker, "EBIT") > first_EBIT Then matrice(ligne_ticker, col_SP) = matrice(ligne_ticker, col_SP) + 1
If valeur(matrice, ticker, "Revenu") > first_CA Then matrice(ligne_ticker, col_SP) = matrice(ligne_ticker, col_SP) + 1
If valeur(matrice, ticker, "BEst P/Act net:Y") < last_P2B Then matrice(ligne_ticker, col_SE) = matrice(ligne_ticker, col_SE) + 1
If valeur(matrice, ticker, "EV/EBITDA") < last_EV_EBITDA Then matrice(ligne_ticker, col_SE) = matrice(ligne_ticker, col_SE) + 1
If valeur(matrice, ticker, "FCF:Y") < last_CF Then matrice(ligne_ticker, col_LBO) = matrice(ligne_ticker, col_LBO) + 1
Next ligne
End Sub