Yurie
Messages postés2Date d'inscriptionlundi 13 avril 2009StatutMembreDernière intervention17 avril 2009
-
13 avril 2009 à 22:30
Yurie
Messages postés2Date d'inscriptionlundi 13 avril 2009StatutMembreDernière intervention17 avril 2009
-
15 avril 2009 à 16:52
Bonsoir à tous et toutes,
Comme l'indique le titre de mon post, je dois développer un calculateur du droit d'enregistrement lors d'un achat de bien immobilier, dans le cadre d'un de mes cours en Visual Basic. Malheureusement, j'ai un petit soucis lors d'une "récupération" de donnée enregistrée par l'utilisateur...
J'ai déjà essayé plusieurs façons différentes mais sans succès...
Petit briefing : lors d'un achat de bien, on ajoute au prix du logement une taxe à payer en plus. Dans certains cas, si les conditions adéquates sont vérifiées, il y a un abattement sur le prix (une réduction en clair).
Alors, c'est là où j'ai un soucis. L'utilisateur doit cocher des checkBox pour vérifier les conditions, j'utilise ces tests (itératives) pour voir si l'utilisateur a droit ou non à l'abattement. Celui-ci est normalement envoyé dans une cellules d'une feuille d'excell, que j'utilise pour calculer le prix final. Mais, il considère l'abattement a zéro (en phase de débogage). C'est bizarre... Je vous montre la partie du code qui cloche selon moi :
...
'Abbatement nul si achat d'une partie d'immeuble ou si pas de vente 1er maison et achat maison sec
If ((Range("E3").Value "Partie d'immeuble") And (Range("E4").Value "FAUX") And (Range("E5").Value = "VRAI")) Then prix = prix - 0If ((Range("E3").Value "Partie d'immeuble") And (Range("E5").Value "FAUX") And (Range("E4").Value = "VRAI")) Then prix = prix - 0If ((Range("E4").Value "FAUX") And (Range("E5").Value "VRAI")) Then prix = prix - 0If ((Range("E4").Value "FAUX") Or (Range("E5").Value "VRAI")) Then prix = prix - 0
'zone prioritaire, Vente de la 1er et pas achat d'une secondaire
If ((Range("E7").Value "VRAI") And (Range("E1").Value > 75000) And (Range("E4").Value "VRAI") And (Range("E5").Value = "")) Then prix = prix - 75000 '75000
'Prix plus grand que 60000 et maison 2 vendue et maison = appart sur plan
If ((Range("E1").Value > 60000) And (Range("E4").Value "VRAI") And (Range("E5").Value "FAUX")) Then prix = prix - 60000If ((Range("E3").Value "Appartement sur plan") And (prix > 60000) And (Range("E4").Value "VRAI") And (Range("E5").Value = "FAUX")) Then prix = prix - 60000
...
J'espère que j'ai été plus ou moins claire, merci d'avance pour vos réponses.
Yurie.
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 14 avril 2009 à 10:07
Salut,
pour commencer : tu n'est pas dans le bon theme !
Plutot moins que plus pour la clareté !
prix = prix - 0 ???
prix = prix aurait suffit si tenté que d'ecrire une telle evidence est une utilité ! Autrement dit les 4 premieres conditions if ne servent à rien.
Et oui implicitement prix = prix donc cela n'a pas d'interet par contre ce qui a un interet c'est les cas ou prix n'est pas egale à prix.
Voici une ecriture plus lisible et qui fait la meme choseIf Range("E4").Value "VRAI" And Range("E5").Value "FAUX" Then '1ere conditon (l'implicite)
If Range("E1").Value > 60000 Then prix = prix - 60000 If Range("E3").Value "Appartement sur plan" And prix > 60000 Then prix prix - 60000
End if
Avec cette ecriture on voit rapidement que 60000 peut etre retranché 2 fois.
Yurie
Messages postés2Date d'inscriptionlundi 13 avril 2009StatutMembreDernière intervention17 avril 2009 15 avril 2009 à 16:52
<hr size="2" width="100%" />Salut!
Merci d'avoir répondu, désolé pour mes explications, j'ai essayé comme j'ai pu...
En fait, c'était pour m'y retrouver dans mon code que j'ai inséré "prix=prix-0", ainsi je différenciait clairement lorsqu'il y avait une réduction ou non, désolé si ça vous a perturbé... Au départ, je voulais mettre la réduction dans une cellule et l'utiliser sur le prix plus tard, mais sans effet...
L'abattement doit être retranché une fois, selon les conditions: "Si le prix de la maison est inférieur à 60000 ET que ce soit un achat pur et simple ( pas d'achat de maison secondaire et que la 1ere maison doit donc être vendue, les cellules E5 et E4) ou encore "l'achat pur et simple d'un appartement sur plan ainsi que son prix doit être inférieur à 60000"...
Pour les 75000, la seule condition en plus est la zone prioritaire, qui se trouve dans la cellule E7 (TRUE ou FALSE)
J'ai encore modifié mon code, mais rien à faire, il met 0 dans la cellule (E11) pour la réduction et donc il ne réduit pas le prix final (la variable "prix").
Le code :
------------
'Recherche de l'abbatement qu'on insere dans une cellule...
'Abbatement nul si achat d'une partie d'immeuble ou si pas de vente 1er maison et achat maison sec
If (Range("E3").Value = "Partie d'immeuble") Then
Range("E11").Value = 0
End IfIf (Range("E4").Value "FAUX") And (Range("E5").Value "VRAI") Then
Range("E11").Value = 0
End If
'zone prioritaire, Vente de la 1er et pas achat d'une secondaireIf ((Range("E4").Value "VRAI") And (Range("E5").Value "FAUX")) Then
If ((Range("E7").Value = "VRAI") And (Range("E1").Value > 75000)) Then
Range("E11").Value = 75000
End If
If ((Range("E7").Value = "") And (Range("E1") > 60000)) Then
Range("E11").Value = 60000
If (Range("E3").Value = "Appartement sur plan") Then
Range("E11").Value = 60000
End If
End If
End If
'Calcul du prix final avec l'abbatement et le bon taux
prix = Range("E1").Value * Range("E10").Value + Range("E1") 'taxe ajoutée
prix = prix - Range("E11").Value
Je ne comprends vraiment pas pourquoi il met l'abattement à zéro...
Merci pour votre réponse
Yurie
<hr size="2" width="100%" />Quand Chuck Norris utilise Windows, il ne plante pas!