Microsoft 365 Calcul TEXTBOX dans Userform

eric72

XLDnaute Accro
Bonjour,
Je cherche à faire des calculs de Textbox dans un Userform en sachant qu'elles ne sont pas toujours toutes renseignées à chaque fois, malgré cela j'aimerais que le calcul se fasse quand même en tenant compte de celles renseignées, donc j'ai adapté ce code mais ça ne va pas.
Ou est la boulette?
Merci à tous
 

Pièces jointes

  • Gestion Fiche Produit test.xlsm
    204 KB · Affichages: 31

patricktoulon

XLDnaute Barbatruc
re
tiens jean-marie regarde
ça c'est un userform avec des frames
1636103639625.png


et ça c'est le même quand je l'affiche ca devient un multipage fait maison 😂🤣😂🤣😇😇😇

demo.gif


diabolo.gif
 

eric72

XLDnaute Accro
re
tiens il y avais trop de modif ici et là pour te donner que les codes
tu a ajout/modif/supprimer syncronisé

Bonjour Patrick,
Ca fait longtemps que je ne t'ai pas dérangé et ça me manquait.
Dans la fiche produit , si je veux modifier le nom de la plante, est-ce que je peux faire comme cela?
Private Sub NomPlante_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'With CbRechercheProduit
' Select Case KeyCode
' Case 65 To 90
' If .ListIndex > -1 Then .ListIndex = -1: vidange
' Case 46: NomPlante = "": .ListIndex = -1
' End Select
'End With
End Sub
y-a t-il des conséquences autres à faire cela?

Merci beaucoup!!!
Eric (le Boulet)
 

eric72

XLDnaute Accro
ah!.. je me disais aussi
il a perdu la tette je lui fait le calcul auto en mode modif et il le veux pas ??,!!:oops::oops:🤪
il a le covid ou quoi ??,😅😅😂😂🤣🤣

le principe que j'emploi
j'ajoute une variable globale module dans le userform

Public multiplie as double

dans la sub de la combo_click
a la fin avant le end sub je met
multiplie = PrixVente / CoutRevient

dans la sub calculette avant le end sub je met
On Error Resume Next
If multiplie = 0 Then Exit Sub' si c'est zero c'est que l'on a pas selectionner donc mode ajout on sort
PrixVente.Value = CDbl(CoutRevient) * multiplie
Err.Clear


cette sub qui est dans le userform est appellé a chaque declenchement de l'event unique dans la classe
par la sub passerelle gotocalcul
Public Sub GotoCalcul()
'la sub gotocalcul renvoie le calcul dans la sub calculette dans l'userform
UsfProduit.calculette
End Sub



je raz le miultiplie au bouton raz aussi
et voila tu a ton prix de vente automatiquement recalculé en mode modif
finalement c’était pas si compliqué je t'ai mis le prix de vent vide si mode ajout

Bonjour Patrick,

Je fais face à un dernier souci avec ce fichier, en effet il arrive qu'il soit crée un produit uniquement avec le libellé et le prix de vente pour raisons diverses, et dans ce cas dès que l'on appelle ce produit il bug (normal) car il n'y a pas de CoutRevient
- J'ai donc essayé de modifier cela dans la frame Plante : If .PrixAchatPlante = "" Then V(0) = 1 sans succès
- J'ai aussi essayé ça dans "calculette" : If V(1) = 0 Or V(2) = 0 Then s2 = 0.01 Else s2 = (V(1) * V(2)) sans succès
- J'ai aussi essayé ça dans Private Sub PrixVente_AfterUpdate : If CoutRevient = "" Then PrixAchatPlante.Value = 0.01: PRPlante.Value = 0.01: CoutRevient.Value = 0.01
Mais rien ne fonctionne, désolé de t'embêter une nouvelle fois mais je suis dans une impasse.
Au fait tous mes voeux pour cette nouvelle année.
Merci beaucoup
Eric
 

Pièces jointes

  • Gestion Fiche Produit test.xlsm
    261.2 KB · Affichages: 3

eric72

XLDnaute Accro
Bonsoir
Comme je le disais plus haut, il arrive qu'un article soit crée avec uniquement le nom, le code et le prix de vente, du coup lorsqu'on appelle le produit il y un bug du fait que le cout de revient soit egal à rien
C'est un Mdp Project?
Merci Patrick
 

patricktoulon

XLDnaute Barbatruc
re
je suppose que c'est dans cette partie que tu veux modifier quelque chose
VB:
 Case "FrPlante":
            V = Array(.PrixAchatPlante.Value, .CoeffPlante.Value, .PrixAchatPlante.Value, .TransPlante.Value)
            critere = V(0) <> "" And V(1) <> "" And V(2) <> "" 'And V(3) <> ""supression du test vide  pour transplante
            If .TransPlante = "" Then V(3) = 0
            If critere Then .PRPlante.Value = Format((CDbl(V(0)) * CDbl(V(1))) + (CDbl(V(2)) * CDbl(V(3))), "#0.00 €"): GotoCalcul Else .PRPlante.Value = ""

mais comment voudrais tu pourvoir faire un calcul quelconque avec cette donnée qui est la plus importante
puisque ( 0* truc) + ( 0 *chose) feront toujours zéro
c'est pas logique ton truc
je commence a mettre sérieusement en doute ta logique

comment peut on mettre un produit sans son prix d'achat c'est pas possible !!!!!!
c'est ridicule,absurde
il faut un minimum quand même
d'autant plus que le fichier me fait des erreur d'incompatibilité a la fermeture va savoir pour quoi
je sais pas ce que tu a fait dessus
je regarderais quand je serais plus en forme

quand je pense que j'ai déjà passé plus de 11 heures sur ton truc
un produit entré sans son prix d'achat ne devrait pas être accepté c'est tout
tu met au minimum 1 c'est tout
 

Discussions similaires

Réponses
10
Affichages
315