XL 2010 [Résolu par Modeste geedee] Aide calcul avec formulaire

Lone-wolf

XLDnaute Barbatruc
Bonsoir à toutes et à tous :)

Dans le formulaire j'ai ceci

TxtQte > Quantité
TxtPrix > Prix
CmbRabais déjà formatée en pourcentage donc(0.1 pour 10%)
TxtTotal

Pourriez-vous me montrer les calculs à éffectuer s'il vous plaît. Et avec la condition, si rabais <> "" faire le calcul avec celui-ci, sinon prix * quantité. Depuis deux heures que je me casse la tête à trouver le résultat correct et là il y en a marre. :(
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonsoir à toutes et à tous :)

Dans le formulaire j'ai ceci

TxtQte > Quantité
TxtPrix > Prix
CmbRabais déjà formatée en pourcentage donc(0.1 pour 10%)
TxtTotal

Pourriez-vous me montrer les calculs à éffectuer s'il vous plaît. Et avec la condition, si rabais <> "" faire le calcul avec celui-ci, sinon prix * quantité. Depuis deux heures que je me casse la tête à trouver le résultat correct et là il y en a marre. :(
Barbatruc ???
:mad: et ou est le fichier ????
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir Modeste :)

Comme je ne suis pas chez moi, j'utilise un autre ordi, et je n'ai pas le fichier sous la main. Je le mettrait dans un moment.
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re

Comme promis ;)

Pour l'utilisation, sélectionne un employé avec la combo, puis la combo client et enfin clic sur l'onglet Commande.

Comme tu pourra le voir, j'utilise workbooks.open pour aller chercher et modifier les données dans le fichier source, j'aimerai passer par ADO mais c'est trop complexe pour moi, si le coeur t'en dis ça serait sympa.
 

Fichiers joints

Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Re

Comme promis ;)

Pour l'utilisation, sélectionne un employé avec la combo, puis la combo client et enfin clic sur l'onglet Commande.

Comme tu pourra le voir, j'utilise workbooks.open pour aller chercher et modifier les données dans le fichier source, j'aimerai passer par ADO mais c'est trop complexe pour moi, si le coeur t'en dis ça serait sympa.
:( PtrSafe inconnu chez moi (XL2007)
- Dim num As Long

VB:
Private Sub TxtQte_AfterUpdate()
TxtTotal = CDbl(TxtPrix) * CDbl(TxtQte)
Call CalcTotal
End Sub

Private Sub CmbRabais_Change()
Call CalcTotal
End Sub

Private Sub CalcTotal()
If CmbRabais.Value <> "" Then
Me.TxtTotal = (CDbl(TxtPrix) * CDbl(TxtQte)) * (1 - CDbl(CmbRabais) / 100)
Else
Me.TxtTotal = CDbl(TxtPrix) * CDbl(TxtQte)
End If
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Re

Pour PtrSafe, d'après ce que j'ai lu sur microsoft, j'ai dû le rajouter à cause de windows 10 qui ne reconnait plus Public Declare Function FindWindow .... Et Pour Num une variable que j'ai oublier d'enlever. Tu peux supprimer tout ce qui touche à l'icône et au réduction du formulaire.

Edit: la ligne Me.TxtTotal = (CDbl(TxtPrix) * CDbl(TxtQte)) * (1 - CDbl(CmbRabais) / 100) donne une erreur d'incompatibilité de type. La combo Rabais est chargée depuis la feuille Commandes de J1 à N1 où j'ai formaté les cellules en pourcentage (0.1 - 0.2 - 0.3) etc.

Maintenant avec win10 64 bits et excel 2010 32bits, faut calculer autrement??? :rolleyes:

J'ai lu aussi sur le Site Le compagnon, que CCur donnait des resultats justes par rapport à CDbl.
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour Modeste
C'est juste, je me suis mal exprrimé.

En ce qui concerne la macro, j'ai modifié les pourcentages en les metant en nombre; et dans la macro

VB:
Private Sub CmbRabais_Change()
On Error Resume Next
Application.DisplayAlerts = False
If CmbRabais.Value <> "" Then
Remise = (CDbl(TxtPrix) * CDbl(CmbRabais)) / 100
SousTotal = Format(CDbl(Remise), "0.00")
TxtTotal = Format((CDbl(TxtPrix) - CDbl(SousTotal)) * CDbl(TxtQte), "0.00")
Else
Remise = 0
TxtTotal = CDbl(TxtPrix) * CDbl(TxtQte)
End If
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Re

Je ne comprends pas, c'est quoi éluder? :oops:

Si tu parle de CmbRabais call CalcTotal. Explique moi pourquoi appeler une macro quand tu peux la mettre directement dans Change???

Si tu parle de SousTotal, c'est pour voir et avoir la différence en Frs. Il faut aussi que je modifie le nom qui, je croix, fait référence à WorksheetFunction.SubTotal.
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour Modeste,

Mis à part les combos(client et Representant ainsi que les dates), les TextBox sont (= "") à chaque clic sur enregistrer ;)
 

Lone-wolf

XLDnaute Barbatruc
Re Modeste

Et bien voilà, j'ai remarqué avec ma macro qu'au 3ème enregistrement, TxtTotal donnait un faux résultat. En reprenant ton exemple c'est Ok et donc c'était tout à fait juste ce que tu me disait.

Toutes mes excuses pour l'incompréhension. :oops:
 

Discussions similaires


Haut Bas