Problème de procédure (type d'argument ByRef incompatible)

Bonjour,

Je suis confronté à un problème sans que je ne parvienne à trouver la solution.

J'essaye de faire appel à une procédure afin de concaténer 2 chaines de caractères (qui se situent dans les cellules A1 et A2), pour renvoyer le résultat dans la cellule B2. Pour cela, j'enregistre dans a et b les valeurs des cellules A1 et A2, et je veux rajouter à "a" la chaine de caractère "b" (le but est bien de changer la valeur de la variable a).

Pourtant, à chaque fois que je lance la macro, j'ai le message d'erreur "Erreur de compilation. Type d'argument ByRef incompatible." Savez vous d'où ça peut venir? J'ai pourtant fait attention de bien définir à chaque fois mes variables en "String", mais rien n'y fait...

Merci d'avance pour vos réponses.

(ci-dessous la macro actuelle qui renvoie le message d'erreur)

Private Sub test_procedure(texte As String, texte2 As String)
    texte = texte & texte2
End Sub

Sub test()
    Dim a, b As String
    a = Range("A1").Value
    b = Range("A2").Value
    test_procedure a, b
    Range("B2") = a
End Sub

Bonjour

Dans ta procédure Private Sub test_procedure(texte As String, texte2 As String) tu as besoin de 2 chaînes en argument, mais lors de l'appel tu ne transmet qu'une seule chaîne, car tu as typer a en variant

2 solutions

La meilleure

Type la variable a

Sub test()
    Dim a As String, b As String

Une astuce : Force le type lors de l'appel

    test_procedureCstr(a), b
    Range("B2") = a
End Sub

ça marche, super!

Par contre, je suis étonné qu'il faille typer a, je pensais qu'en mettant de la sorte (sur une même ligne "Dim a,b as String"), a ET b étaient typés en "String".

Quoi qu'il en soit, merci beaucoup!

Rechercher des sujets similaires à "probleme procedure type argument byref incompatible"