Type d'argument ByRef incompatible

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
57test.xlsm (532.89 Ko)

Bonjour,

spécifie bien :

Dim ticker As String, secteur As String

le ticker As String ne doit pas être omis

Bonjour,

sur la macro Sub decile()

la variable ticker est decalrer As variant

et sur la ligne suivante elle est déclarer As String

Function valeur(matrice As Variant, ticker As String, indicateur As String) As Variant

Ah oui en effet, j'ai remplacé toutes les variables string en variant et cela fonctionne !

Merci beaucoup !

Ah oui en effet, j'ai remplacé toutes les variables string en variant et cela fonctionne !

Merci beaucoup !

Bonjour,

Mauvaise idée.

Rechercher des sujets similaires à "type argument byref incompatible"