XL 2016 Passage d'argument type As Range - Type d'argument incompatible

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 !

KuschR33

XLDnaute Nouveau
Bonjour ou Bonsoir,
J'ai une petite question concernant le passage d'argument (dans ce cas typé As Range) dans une macro.
Pourquoi ai-je le droit de faire ca ?

VB:
Private Sub CommandButton1_Click()
          Call Bonjour(Sheets("Feuil1").Range("A1:B2"))
End Sub

et que je n'ai pas le droit de passer Mon range dans une variable sans qu'Excel (il a sans doute raison) m'insulte avec son : "ByRef Type d'argument incompatible"

VB:
Private Sub CommandButton1_Click()
         MyRange = Sheets("Feuil1").Range("A1:B2")
         Call Bonjour(MyRange)
End Sub

Ma macro est juste là à titre d'exemple :
VB:
 Sub Bonjour(MonRange As Range)
  MsgBox ("Bonjour")
End Sub
 
Bonsoir.
Très vif conseil :
Mettez quasi systématiquement ByVal devant les déclarations de paramètres de procédures, sauf :
1) — S'il s'agit d'un tableau
2) — Si c'est expressément, non pas une expression mais une variable non objet qui doit être spécifiée lors de l'appel, et que sa modification par la procédure doit modifier la variable passée.
Outre vos problèmes, ne pas le faire aboutit à du code machine carrément idiot … mais tout le monde s'en fout, bien sûr.

Dans votre cas ça ne marche pas parce que votre procédure attend l'adresse d'un objet Range alors que vous voulez lui transmettre l'adresse d'un Variant.
Avec ByVal il saurait qu'il doit installer à domicile chez la procédure une copie du Range tirée du Variant s'il en contient un. Ce qui n'est d'ailleurs pas le cas, puisque vous n'avez pas fait de Set dessus. Mais s'il n'a hélas, et inutilement, que des adresses pour se dépatouiller, il faut qu'elles correspondent à des types de données rigoureusement identiques.
 
Dernière édition:
- 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

Réponses
3
Affichages
665
Réponses
10
Affichages
547
Réponses
4
Affichages
548
Retour