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
HaHHHHH je crois comprendre ta question


si ce code est exécute en externe( dans un module par exemple) avec le userform pas ouvert
comme tu change le value du combo tu déclenche forcement son click donc l'userform s'affiche car l'event de la combo est dans le module de ce userform qui est je te le donne dans le mille un module classe et comme ce module(donc celui du userform est acitivé ben le initialise s'active comme dans n'importe quelle classe
 

patricktoulon

XLDnaute Barbatruc
tiens teste cela

en fait on teste un match sur le .list lui même de la combo
boucle a reculons removeitem oblige bien sur (c'est comme les ligne d'une plage on les supprime a reculons)
VB:
Sub remplicombosansdiconodouble()
    Dim a, x&, i&
    a = Split("toto;titi;riri;toto;fifi;loulou;toto;titi;toto;fifi;loulou;fifi;titi", ";")
    With UserForm2
        .ComboBox1.List = a    ' on met tout avec les doublons
        For i = UBound(.ComboBox1.List) To 0 Step -1
            x = Application.IfError(Application.Match(a(i), .ComboBox1.List, 0), 0)
            If x <> i + 1 Then .ComboBox1.RemoveItem i
        Next
        'allez on tente un show pour voir
        '.Show 0
     End With
End Sub
mais c'est vraiment archaïque
on peut le faire directement sur la variable tableau (a)

VB:
Sub remplicombosansdiconodouble()
    Dim a, x&, i&
    a = Split("toto;titi;riri;toto;fifi;loulou;toto;titi;toto;fifi;loulou;fifi;titi", ";")
    With UserForm2
        For i = 0 To UBound(a)
            x = Application.IfError(Application.Match(a(i), a, 0), 0)
            If x = i + 1 Then .ComboBox1.AddItem a(i)
        Next
        'allez on tente un show pour voir
        .Show 0
     End With
End Sub

après il y a les collections et les dico et systemarraylist et l'autre je sais plus comment il s'appelle celui là 😅
 

patricktoulon

XLDnaute Barbatruc
tiens j'arrive pas rester serieux 😂🤣
VB:
Sub remplicombosansdiconodouble()
    Dim a, STRINGetPorteJaretelle$, i&
    a = Split("toto;titi;riri;toto;fifi;loulou;toto;titi;toto;fifi;loulou;fifi;titi", ";")
    With UserForm2
        For i = 0 To UBound(a)
           If Not STRINGetPorteJaretelle$ Like "* " & a(i) & " *" Then .ComboBox1.AddItem a(i): STRINGetPorteJaretelle$ = STRINGetPorteJaretelle$ & " " & a(i) & " "
        Next
        'allez on tente un show pour voir
        .Show 0
     End With
End Sub
 

eric72

XLDnaute Accro
Bonjour Patrick,
Ca y est, enfin de retour, ben dis donc tu as bien bossé.
Alors pour le prix de vente, c'est manuel et pour la marge c'est:
Me.Marge.Value = Format((CDbl(Me.PrixVente) - CDbl(Me.CoutRevient)) / CDbl(Me.CoutRevient), "0.00%")
N'hésite pas si tu as besoin, je suis là, lol!!!
 

patricktoulon

XLDnaute Barbatruc
Bonjour Eric72
réponses

Me.Marge.Value = Format((CDbl(Me.PrixVente) - CDbl(Me.CoutRevient)) / CDbl(Me.CoutRevient), "0.00%")
oui mais avant de calculer il faudrait que je sache ou prendre les donnée pour le moment ces deux textbox sont vides
donc la formule du prix de vente en clair SVP


2° non je t’attendais pour la 2d alimention du tableau TBProduit dans données je suppoose que c'est juste quelque textbox

regarde comment il est maintenant
demo.gif
 

patricktoulon

XLDnaute Barbatruc
j'ajouterais qu'il y a une inutilité dans cette conception
l'enregistrement des checkbox n'est pas vraiment cessionnaire
en mode modif si on veux le changer on le débloque c'est tout et hop 5/6 colonnes en moins
mais bon j'ai respecté ton choix de le faire

j'attend ta formule prix de vente ;)
 

Discussions similaires

Réponses
1
Affichages
227

Statistiques des forums

Discussions
312 520
Messages
2 089 286
Membres
104 086
dernier inscrit
lucasjol