XL 2019 Accepter une virgule (ou un point) dans un textbox

natorp

XLDnaute Barbatruc
Bonjour à toutes et tous

J'ai récupéré ce fichier que j'essaye d'adapter à nos besoins de garage participatif
Je bloque sur la possibilité de rentrer une valeur avec une virgule (ou un point) dans la colonne "quantité" du userform "devis"
Et que cela calcul comme il faut le total de ce même userform
Il y a un module de classe dans le code que je ne comprends pas et je ne vois pas comment faire
Par exemple, depuis l'onglet "paramètres" on clique sur "lancer l'interface", on choisit "Gestion devis + facturation"
un userform "devis" apparaît, que l'on choisisse un devis, ou que l'on veuille faire un nouveau devis, j'aimerais pouvoir saisir la quantité avec une virgule (ou un point) et que le total se mette à jour comme il faut, et que cela alimente l'onglet "Base devis" avec les bonnes valeurs

Merci pour votre attention et votre aide, cordialement, Gérard
 

Pièces jointes

  • Test devis.xlsm
    324.6 KB · Affichages: 16
Solution
re
VB:
Private Sub Cbn_Valider_Click()
  Dim I&
    With Range("archivedevis").ListObject
        For I = .ListRows.Count To 1 Step -1
            If .ListRows(I).Range.Cells(1) = Cbx_Devis.Text Then .ListRows(I).Delete
        Next
    End With
    For I = 0 To ListBX.ListCount - 1
        With Range("archivedevis").ListObject.ListRows.Add.Range
            'N°devis, N°client,nomclient ,Date ,description,prix unitaire,quantité,soutotal,Total
            .Cells(1) = Cbx_Devis
            .Cells(2) = Cbx_Client
            .Cells(3) = Tbx_Raison
            .Cells(4) = Tbx_DateDevis
            .Cells(5) = ListBX.List(I, 0)
            .Cells(6) = ListBX.List(I, 1)
            .Cells(7) = ListBX.List(I, 2)
            .Cells(8) =...

Staple1600

XLDnaute Barbatruc
Bonjour @natorp, le fil


Il semble que ce soit dans cette partie du module de classe que la virgule et le point sont traités
Enrichi (BBcode):
Private Sub textNumerique_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 8 Or KeyCode = 46 Then Exit Sub 'touche Delete ou Suppr
If KeyCode = 37 Or KeyCode = 38 Or KeyCode = 39 Or KeyCode = 40 Then Exit Sub 'touches de navigation
If KeyCode = 13 Then Exit Sub 'touche Entrée

If KeyCode = 188 Then KeyCode = 110 'remplacement de la virgule par un point
If KeyCode = 110 Then 'saisie du point
    If InStr(1, textNumerique, ".") <> 0 Then KeyCode = 0 'il y a déjà un point dans le nombre
End If
If Not (KeyCode >= 96 And KeyCode <= 106 Or KeyCode = 110) Then 'si on tape autre chose qu'un chiffre
    KeyCode = 0
End If

End Sub

EDITION:
En mettent cette procédure en commentaire, je peux saisir une virgule dans les textbox.
Mais je suppose que cette procédure était là, c'est qu'elle a son utilité.
Donc vérifier que cela ne perturbe pas le fonctionnement des autres macros.
 
Dernière édition:

natorp

XLDnaute Barbatruc
Merci JM
mais cela ne change pas grand chose, juste que je peux plus utiliser la virgule du clavier

Je pense que cette macro joue également un rôle dans le calcul du montant du devis :
VB:
Sub UpdateMontants()
    MontantHT = 0
    For i = 1 To 10
        If IsNumeric(Me.Controls("Tbx_Montant" & i)) And IsNumeric(Me.Controls("Tbx_Qté" & i)) Then
            MontantHT = MontantHT + CDbl(Me.Controls("Tbx_Montant" & i)) * CDbl(Me.Controls("Tbx_Qté" & i))
        End If
    Next i
   
    Me.Tbx_MontantHTDevis = MontantHT
End Sub
Quand on entre un montant avec le point du pavé numérique, le montant ne tient plus compte de la ligne concernée
Cordialement, Gérard
 

Staple1600

XLDnaute Barbatruc
Re

En commentant textNumerique_Key, je peux saisir une virgule (avec la touche ?/,)
devis.PNG

C'est moins pratique que le clavier numérique mais j'ai une virgule dans l'userfrom et les calculs se font
 

natorp

XLDnaute Barbatruc
Re

En commentant textNumerique_Key, je peux saisir une virgule (avec la touche ?/,)
Regarde la pièce jointe 1204371
C'est moins pratique que le clavier numérique mais j'ai une virgule dans l'userfrom et les calculs se font
Merci JM

Quel est la ligne que tu commentes s'il te plait ?
Est-ce que le montant Total s'actualise avec une virgule dans la quantité ?
C'est aussi ça dont nous avons besoin, car on va mettre une quantité d'heures passées qui peut être 1,5

Merci pour ton aide, cordialement, Gérard
 

patricktoulon

XLDnaute Barbatruc
bonjour
au regard de ton fichier je vois quelque un de mes codes qui ont été bricolé un peu dans tout les modules
je reconnais certains partie de ma classe ctextBox
perso je referais tout au propre par ce que celui qui t'a fait ça n'a rien compris au manège
si tu te sent de travailler proprement fait moi signe on reprendra tout à zero
 

natorp

XLDnaute Barbatruc
Merci Patrick
Je suis tout à fait d'accord pour repartir de zéro
Mon besoin se rapproche beaucoup de ce fichier, il faut absolument que nous puissions entrer des valeurs avec virgule (ou point) dans le PU et la quantité et que le Montant total se mette à jour afin d'alimenter l'onglet "Devis"
Je suis vraiment preneur de ton aide, cordialement, Gérard
 

natorp

XLDnaute Barbatruc
bonjour
au regard de ton fichier je vois quelque un de mes codes qui ont été bricolé un peu dans tout les modules
je reconnais certains partie de ma classe ctextBox
perso je referais tout au propre par ce que celui qui t'a fait ça n'a rien compris au manège
si tu te sent de travailler proprement fait moi signe on reprendra tout à zero
D'ailleurs, si l'on reprend tout, nous sommes une association sans TVA, donc pas besoin de textbox "tva"
Merci
 

natorp

XLDnaute Barbatruc
Tout d'abord merci beaucoup Patrick
Je suis tout à fait partant avec tout ce que tu proposes, il est vrai par exemple que l'onglet "paramètres" ne sert qu'à alimenter l'entête du devis et de la facture, on peut tout à fait s'en passer
Et alors restructurer l'onglet "devis" et l'userform "devis", je suis, là aussi, tout à fait partant
Dans le userform "devis" faire une ligne "article" sans la colonne "TVA" et un bouton "+" au bout pour ajouter un article supplémentaire, c'est très bien
Je ne sais pas par où commencer mais je suis prêt à suivre ce que tu me proposes
Très cordialement, Gérard
 

patricktoulon

XLDnaute Barbatruc
re
ok j'ai refait le userform acceuil et client pour l'instant

Question
est ce que les devis peuvent être enregistré dans un type csv par exemple dans un dossier automatique au même endroit que le fichier lui même
voila ou j'en suis pour le moment

il ne fonctionne pas encore sauf l'acceuil et client
 

Pièces jointes

  • Test devis(1).xlsm
    277.8 KB · Affichages: 5

natorp

XLDnaute Barbatruc
re
ok j'ai refait le userform acceuil et client pour l'instant

Question
est ce que les devis peuvent être enregistré dans un type csv par exemple dans un dossier automatique au même endroit que le fichier lui même
voila ou j'en suis pour le moment

il ne fonctionne pas encore sauf l'acceuil et client
Merci beaucoup
Si cela est possible je préfère une ligne par devis dans un onglet, ce fichier va être utilisé par plusieurs personnes
J'ai vu que tu as commencé à retravailler le userform "devis", pas besoin de la TVA

Cordialement, Gérard
 

patricktoulon

XLDnaute Barbatruc
sachant q'un devis peut avoir jusqu'a 10 lignes ca me parrait un peu compliqué
autant enregistrer chaque ligne d'un devis dans une ligne avec en premiere colonne le N° de devis
la combo listerait les lignes sans doublons
ca oui on peut le faire mais pas un devis sur une seule ligne
 

natorp

XLDnaute Barbatruc
re
ok j'ai refait le userform acceuil et client pour l'instant

Question
est ce que les devis peuvent être enregistré dans un type csv par exemple dans un dossier automatique au même endroit que le fichier lui même
voila ou j'en suis pour le moment

il ne fonctionne pas encore sauf l'acceuil et client
Est-il possible d'afficher un client dans le userform "client" quand on choisit sa référence ?
 

Discussions similaires

Statistiques des forums

Discussions
314 735
Messages
2 112 317
Membres
111 506
dernier inscrit
Souleymane@