Pb avec ma boucle while .... Synthaxe sans doute [VBA] - Programmation
Marsh Posté le 15-01-2002 à 09:42:14
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
Marsh Posté le 15-01-2002 à 09:44:41
ouai ca marche mais je vais faire un tour de trop dans ma boucle la ? j'essaye 2sec
Marsh Posté le 15-01-2002 à 09:55:23
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 ?
Marsh Posté le 15-01-2002 à 10:55:10
Solution standard VB :
rangdumois = OccuranceMatricule(matricule, F_JANVIER, rangdumois)
While (rangdumois <> 0)
.... le reste
rangdumois = OccuranceMatricule(matricule, F_JANVIER, rangdumois)
Wend
Marsh Posté le 15-01-2002 à 11:02:54
a bon
be alors je vais faire comme ca...
Marsh Posté le 16-01-2002 à 10:21:25
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 : |
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]
Marsh Posté le 16-01-2002 à 10:47:21
ouai c bon j'ai compris
merci au moins je sais pkoi il me faisait ca
Marsh Posté le 15-01-2002 à 09:28:49
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 ...
Donc, pkoi ca me fait ca ?
[edtdd]--Message édité par olicel--[/edtdd]
---------------
toujours un petit mot gentil: