merci :jap: au moins je sais pkoi il me faisait ca
Sylderon
En C tu as 2 opérateurs (= et ==) pour les opérations d'initialisation et de test d'égalité.
En VBA seul l'opérateur = existe pour ces deux opérations.
Dans le cadre d'une instruction While, VBA ne doit pas interpréter = comme une initialisation !
Donc ta formule
Citation :
While ((rangdumois = OccuranceMatricule(matricule, F_JANVIER,rangdumois))<> 0)
n'est pas interprétée comme l'affectation d'une valeur retournée par la fonction, puis sa comparaison à 0 mais comme la comparaison entre rangdumois et le résultat de ta fonction, puis entre le résultat de cette première comparaison et 0.
J'espère avoir été clair :)
A+
[edtdd]--Message édité par sylderon--[/edtdd]
olicel
a bon :??:
be alors je vais faire comme ca...
Mara's dad
Solution standard VB :
rangdumois = OccuranceMatricule(matricule, F_JANVIER, rangdumois)
While (rangdumois <> 0)
.... le reste
rangdumois = OccuranceMatricule(matricule, F_JANVIER, rangdumois)
Wend
olicel
be voila ca marche mais fo que je fasse ca alors mais ca me fait deux conditions... mais bon c deja beaucoup mieux que deux fois ma fonction, qui est longue en plus ...
Bon si j'ai pas d'autre sol je fais ca mais j'aurais aimé comprendre pkoi ce VBA de merde(parce que vraiment ca pu) me fait ca. Avant je faisais du C++, c carrement plus clair comme language
alors ma solution ?
olicel
ouai ca marche mais je vais faire un tour de trop dans ma boucle la ? j'essaye 2sec
thecoin
Je suis pas un specialiste VB,mais essaye un truc du gengre
do
rangdumois = OccuranceMatricule(matricule, F_JANVIER,rangdumois)
while(rangdumois=0)
je sais meme pas si le do...while existe en VB :??:
olicel
voila j'aimerais faire ca
While ((rangdumois = OccuranceMatricule(matricule, F_JANVIER,rangdumois))<> 0)
.... le reste
Wend
mais ca ne marche pas rangdumois ne change pas, c'est comme si ma focntion ne retournais rien, alors j'ai essayé ca :
While (OccuranceMatricule(matricule, F_JANVIER,rangdumois)<> 0)
rangdumois = OccuranceMatricule(matricule, F_JANVIER, rangdumois)
.... le reste
Wend
la ca marche mais je fais 2 fois l'appel a la fonction OccuranceMatricule pour rien, et comme j'essaye d'optimiser mon code ...