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

ChTi160

XLDnaute Barbatruc
Bonjour Eric
Bonjour Patrick !
j'ai rencontré un petit Problème lorsque j'ai voulu jouer avec le Bébé ! Lol
il me semble ...... qu'il y a une inversion de Controls entre la mère ( Frame ) "FrEntourage" et celle "FrEmballage "
Ou alors , j'ai manqué quelque chose (il y'a des Lignes apostrophées ????) Why ?
VB:
'-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_Case "FrEmballage":
à voir donc !

y'a pas le feu Eric est en WeekEnd Lol
Edit : aparemment Patrick n'aime pas ma façon de Faire avec les "€" Lol
Bonne Journée
jean marie
 

Pièces jointes

  • TestFrmentourage.gif
    TestFrmentourage.gif
    13.4 KB · Affichages: 3
Dernière édition:

patricktoulon

XLDnaute Barbatruc
Bonjour @ChTi160
je n'avais pas inversé j'avais trop nettoyé mon code et enlevé trop de lignes

en fait quand j'ai nettoyé mon code j'ai enlevé des lignes case "...:"
ce qui fait que pour une case j'avais le travail de 2 frames en une et ça ne pouvait pas fonctionner correctement
je m'en suis rendu compte ce matin

mises a jour ce matin
  1. remplissage de la combo jaune(recherche) et son event qui remplie le formulaire
  2. bouton ajouter
  3. bouton modifier
  4. mise ajour de la combo jaune après ajout ou modifier dynamiquement
a ma façon bien sur ( avec les outils tableau structuré celle que l'on doit utiliser)
et pas ce bikmak de range .end(lxup) et derligne et tout y couintiti ( code de 3 kilomètres j'en ai la migraine )
ce qui rend les codes BEAUCOUP PLUS SIMPLE

pour l'ajout et modifier bien sur toujours le contrôle sur vide ou non numerique pour cdbl
avec ma méthode array (v) et simple boucle
bref

tiens jean-marie change l'event unique dans la classe
VB:
Private Sub txtB_Change()
'la variable "tous" contient les object textbox de leur frame respective
    Dim critere As Boolean, V, q&
    With mamanFram
        Select Case .Name

        Case "FrCdt":
            V = Array(.PrixCdt.Value, .TxtSoie.Value, .TxtCordelette.Value, .TxtEtiquetteCarton.Value, .CoeffCdt.Value)
            For q = 0 To UBound(V)
                If V(q) = "" Then V(q) = 0 Else critere = True
            Next
            If critere Then .PRCdt = Format((CDbl(V(0)) + CDbl(V(1)) + CDbl(V(2)) + CDbl(V(3))) * CDbl(V(4)), "#0.00 €"): GotoCalcul Else .PRCdt = ""

        Case "FrPlante":
            V = Array(.PrixAchatPlante.Value, .CoeffPlante.Value, .PrixAchatPlante.Value, .TransPlante.Value)
            critere = V(0) <> "" And V(1) <> "" And V(2) <> "" And V(3) <> ""
            If critere Then .PRPlante.Value = Format((CDbl(V(0)) * CDbl(V(1))) + (CDbl(V(2)) * CDbl(V(3))), "#0.00 €"): GotoCalcul Else .PRPlante.Value = ""

        Case "FrPot":
            V = Array(.PrixPot.Value, .CoeffPot.Value)
            critere = V(0) <> "" And V(1) <> ""
            If critere Then .PRPot.Value = Format((CDbl(V(0)) * CDbl(V(1))), "#0.00 €"): GotoCalcul Else .PRPot = ""


        Case "FrPlaque":
            V = Array(.PrixPlaque.Value, .CoeffPlaque.Value, .NbPlantePlaque.Value)
            critere = V(0) <> "" And V(1) <> "" And V(2) <> ""
            If critere Then .PRPlaque = Format((CDbl(V(0)) * CDbl(V(1))) / CDbl(V(2)), "#0.00 €"): GotoCalcul Else .PRPlaque = ""


        Case "FrChromo":
            If .PrixChromo.Value <> "" Then .PRChromo.Value = Format(.PrixChromo.Value, "#0.00 €"): GotoCalcul Else .PrixChromo = ""


        Case "FrEtiquette":
            .PREtiquette.Value = Format(.PrixEtiquette.Value, "#0.00 €"): GotoCalcul


        Case "FrEntourage":
            If .PrixEntourage.Value <> "" Then .PREntourage.Value = Format(.PrixEntourage.Value, "#0.00 €"): GotoCalcul Else .PrixEntourage
        

        Case "FrEmballage":
            V = Array(.Mousseline.Value, .Kraft.Value, .DsSmith.Value)
            For q = 0 To UBound(V)
                If V(q) = "" Then V(q) = 0 Else critere = True
            Next
            If critere Then .PREmballage = Format((CDbl(V(0)) + CDbl(V(1)) + CDbl(V(2))), "#0.00 €"): GotoCalcul Else .PREmballage = ""


        Case "FrAccess":
            V = Array(.TxtPrixAccessoire.Value, .TxtCoeffAccess.Value)
            critere = V(0) <> "" And V(1) <> ""
            If critere Then .PRAccess.Value = Format((CDbl(V(0)) * CDbl(V(1))), "#0.00 €"): GotoCalcul Else .PRAccess.Value = ""


        Case "FrMO":
            V = Array(.TxtCoutHrMO.Value, .TxtTempsMO.Value)
            critere = V(0) <> "" And V(1) <> ""
            If critere Then .TxtPrMO.Value = Format((CDbl(V(0)) * CDbl(V(1))), "#0.00 €"): GotoCalcul Else .TxtPrMO.Value = ""


        Case "FrTransport"
            V = Array(.PoidsPlante.Value, .PrixKgPlante.Value)
            critere = V(0) <> "" And V(1) <> ""
            If critere Then .PRTransport.Value = (CDbl(V(0)) * CDbl(V(1))): GotoCalcul Else .PRTransport.Value = ""

        End Select
    End With
End Sub
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
j'ai legerement changé le look ca pique moins les yeux
1635698486581.png
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour a tous

mise a jour
  1. les valeur checkbox arrivent en numérique dans le tableau
  2. bouton raz
  3. remise du bouton d’accès sur feuille menu

ce qui reste a faire
  1. prix de vente
  2. marge

Résumé
  1. suppression modules classes
  2. ajout d'un module classe avec un event unique pour tout les textbox modifiable au clavierOK
  3. event intra userform code entièrement repensé OK
  4. bouton ajouter OK
  5. bouton modifier OK
  6. bouton supprimer OK
  7. bouton RAZ OK
  8. nouveau Look OK(changement très léger pour le confort des yeux )
  9. nettoyage de certains modules et regroupement de certains d'entre eux en un
  10. le userform a sa propre fonction de tri (pour trier le tableau BDProduit)
  11. et bien d'autre petites choses encore

et a fin de le rendre encore plus propre je pense que tout ces ranges nommée
(sauf les tableaux structurés bien sur) sont à supprimer
puisque que le userform modif général travaille avec des TS (je le sais c'est moi qui ai tout refait)
1635752608449.png

pour certains modules j'ai encore du mal a saisir leur utilité


faudrait qu'il arrive pour finir ;) que je clôture ce projet
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
bonsoir @eric72 j'ai encore avancé
j'ai maintenant le mode ajout et modif qui sont bien distingués et les bouton sont disabled et enabled en conséquence
j'ai ajouter un bouton raz aussi
et tout plein de petite choses qui font que c'est plus ergonomiques et t'eviteront de faire des erreurs

dans le post précédent je te demande si les name sont encore utiles
moi je la vois pas l'utilité on garde juste les TS
et par conséquent des modules et macro ne servent plus a rien
je te donnerait la version finale quand tu me donnera la formule prix de vent et marge dans le carré bleu
 

ChTi160

XLDnaute Barbatruc
Bonsoir Eric
Bonsoir Patrick ,le Forum

Patrick !
pour répondre à : je ne sais pas de quoi tu parle avec les "€" tu me diras
voir post #164 (une image ou j'ai comme souvent mis le Symbole dans un Label !
a voir si ca t'irait lol
merci du travail fait !
j'apprends et je duplique dans certains de mes codes , ces Classes et méthode de Chargement de Combobox
j'ai même une question : ( Eric est absent Lol , je profite )
Comment traites tu le fait que de charger des Combobox via ta méthode
exemple
VB:
With .CBx_1
     .Text = tablo(L, 1)
  If .ListIndex = -1 Then
     .AddItem tablo(L, 1)
  End If
End With
ca me déclenche le Userform_Initialise à chaque tour de Boucle.
comment fais tu toi pour éviter ça ?
moi j'ai mis un Test Boolean
If Ok_Change =False then exit sub ,mais bon ...
Bonne fin de Soirée
Jean marie
 

patricktoulon

XLDnaute Barbatruc
Bonsoir @ChTi160
a oui d'accords c'est vrai que c'est plus simple mais j'ai réglé ce problème
je n'ai pas de soucis avec les calculs ça c’était réglé des mes premiers essais

il me manque juste deux calculs et il est fini je fait que des arrangement d'ordre ergonomique depuis hier
et ces puré de puré de names qui servent plus a rien qui me titillent je sais pas si il s'en servira ou pas
et des macro qui servent a rien aussi
tout ca il me le dira demain afin que je lui remette un fichier propre et digne de ce nom
tu peux pas imaginer comme ça ne me plait pas des macro qui servent a rien dans un fichier
 

patricktoulon

XLDnaute Barbatruc
re
@ChTi160
d'accords tu parle de remplissage de listbox ou combobox en testant le listindex en y mettant une valeur pour faire un additem ou pas
attention cette méthode est bien par sa simplicité mais elle est plus longue en cas de longue liste
pour le reste je comprend pas ce que tu veux me dire
il me faudrait ton fichier avec ta combo
 

Discussions similaires

Réponses
1
Affichages
227

Statistiques des forums

Discussions
312 520
Messages
2 089 296
Membres
104 092
dernier inscrit
karbone57