A voir également:
- VBA: erreur de débutant en 30s svp!!
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
- Vba autofill ✓ - Forum Excel
3 réponses
Si je comprend bien tu a une fonction nommé copions() et 2 variable une s'appelant vectcopy et l'autre s'appelant vecteurarg
alors lorsque tu appelle ta fonction
copion(la tu lui passe la variable dans ton cas ton vecteur)
ensuite dans ta fonction tu fais une copie de ton vecteur reçu
vectcopy = vecteurarg
et c'est la ton erreur pourquoi fais tu copions = vecteurarg
copions est un fonction et non une variable tu ne peux pas égaler ta fonction a une variable
A partir de la explique moi un peut ce que tu veux faire car tu étais bien partit ?
Veux tu retourner ta valeur?
alors lorsque tu appelle ta fonction
copion(la tu lui passe la variable dans ton cas ton vecteur)
ensuite dans ta fonction tu fais une copie de ton vecteur reçu
vectcopy = vecteurarg
et c'est la ton erreur pourquoi fais tu copions = vecteurarg
copions est un fonction et non une variable tu ne peux pas égaler ta fonction a une variable
A partir de la explique moi un peut ce que tu veux faire car tu étais bien partit ?
Veux tu retourner ta valeur?
Bonjour,
Tu dis...
Tu dimentionne vectcopy comme un tableau mais tu lui attribue une valeur comme si c'est une variable ??
A+
Tu dis...
Dim vectcopy() As Variant vectcopy = vecteurarg
Tu dimentionne vectcopy comme un tableau mais tu lui attribue une valeur comme si c'est une variable ??
A+
Bonjour,
Ok merci pour la remarque... elle m'a fait réfléchir 30s et je vois ce que tu veux dire: donc pour "égaler" 2 vecteurs, il faut juste égaler toutes les composantes d'où une boucle. Mais alors là on en revient au problème: je dois pour faire une boucle connnaitre la taille de mon vecteur mais avec n = ubound(vecteurarg,1) j'obtiens des #valeur! je pourrais à la limite faire une boucle do while mais pourquoi le n = ubound(vecteurarg,1) ne marche t il pas?
merci d'avance!
Ok merci pour la remarque... elle m'a fait réfléchir 30s et je vois ce que tu veux dire: donc pour "égaler" 2 vecteurs, il faut juste égaler toutes les composantes d'où une boucle. Mais alors là on en revient au problème: je dois pour faire une boucle connnaitre la taille de mon vecteur mais avec n = ubound(vecteurarg,1) j'obtiens des #valeur! je pourrais à la limite faire une boucle do while mais pourquoi le n = ubound(vecteurarg,1) ne marche t il pas?
merci d'avance!
merci de ta réponse! alors effectivement j'ai une fonction à qui je passe en argument un vecteur. Et j'aimerais tout simplement créer une copie de ce vecteur. Donc je crée un autre vecteur : vectcopy
cependant la ligne vectcopy = vecteurarg est la cause des #valeur! VBA n'aime pas ça et je demande pourquoi...
le copions = vecteurarg est l'équivalent (pour moi) d'un return vecteurarg
en fait, de même si j'utilise par exemple
dim n as integer
n = ubound(vecteurarg,1) je vais obtenir des #valeur! ce n'est pas très clair pour moi comment je dois correctement faire appel au vecteur passé en argument! tu vois mon souci?
en soit ce programme est stupide et ne me sert qu'à voir comment marche VBA et je ferai le même genre de tests après avec un tableau etc etc.
Merci