Type d'argument ByRef incompatible

Y compris Power BI, Power Query et toute autre question en lien avec Excel
A
Alexandre74006
Jeune membre
Jeune membre
Messages : 20
Inscrit le : 27 novembre 2018
Version d'Excel : 2016 FR

Message par Alexandre74006 » 9 décembre 2018, 18:26

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.. :oops:

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

test.xlsm
(532.89 Kio) Téléchargé 9 fois
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 11'201
Appréciations reçues : 564
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR

Message par Steelson » 9 décembre 2018, 18:40

Bonjour,

spécifie bien :
Dim ticker As String, secteur As String
le ticker As String ne doit pas être omis

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 4'842
Appréciations reçues : 235
Inscrit le : 16 mars 2017
Version d'Excel : 2010 sur PC

Message par i20100 » 9 décembre 2018, 18:45

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
Une pensée partagée
Lorsque tu omets de marquer la question initiale comme étant résolu, tu prives les participants du forum d’une solution possible pour eux.
Merci! de faire un clic sur le bouton résolu pour nous aider à t'aider.
isabelle
A
Alexandre74006
Jeune membre
Jeune membre
Messages : 20
Inscrit le : 27 novembre 2018
Version d'Excel : 2016 FR

Message par Alexandre74006 » 9 décembre 2018, 19:08

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

Merci beaucoup !
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 11'201
Appréciations reçues : 564
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR

Message par Steelson » 10 décembre 2018, 01:04

:btres:

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'203
Appréciations reçues : 445
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 10 décembre 2018, 07:44

Alexandre74006 a écrit :
9 décembre 2018, 19:08
Ah oui en effet, j'ai remplacé toutes les variables string en variant et cela fonctionne !

Merci beaucoup !
Bonjour,
Mauvaise idée.
1 membre du forum aime ce message.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message