Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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) =...

patricktoulon

XLDnaute Barbatruc
le userform client:
si tu selectionne un client dans la combo les textboxs se mettent à jour
tu peux modifier les textbox et cliquer sur valider pour mettre a jour la ligne du client dans la liste

si tu clique sur nouveau et que tu a la raison/nom et prénom inscrit le bouton valider ajoutera une ligne automatiquement

autrement dis tu a un userform ajout et modif des données d'un client en un seul userform

on pourrait éventuellement ajouter un bouton supprimer pour supprimer un client du listing
 

natorp

XLDnaute Barbatruc
Impecc' ça marche, pas besoin de supprimer merci
 

natorp

XLDnaute Barbatruc
J'ai mis les formats de téléphone dans le userform "clients" :

VB:
Private Sub Tbx_TelMob_Change()
Me.Tbx_TelMob.Value = Format(Tbx_TelMob.Value, "0#"" ""##"" ""##"" ""##"" ""##")
End Sub

Private Sub Tbx_TelPro_Change()
Me.Tbx_TelPro.Value = Format(Tbx_TelPro.Value, "0#"" ""##"" ""##"" ""##"" ""##")
End Sub
 

natorp

XLDnaute Barbatruc
Je n'ai pas vu cette proposition qui me va bien, merci
J'ai testé le fichier en ayant supprimer les lignes "clients" pour repartir sur une base vide mais quand je clique sur "Nouveau client", j'ai une erreur : "L'indice n'appartient pas à la sélection" à ce niveau :

Merci pour ton aide, Gérard
 

ChTi160

XLDnaute Barbatruc
Bonjour le Fil
j'ai constaté une petite anomalie qui pourrait poser problème ! Lol
il y a dans la procédure "reliste"
VB:
tbl = ThisWorkbook.Sheets("Base clients").Range("t_Clients").Value
    Cbx_Client.ColumnCount = UBound(tbl)
    Cbx_Client.List = tbl
UBound(tbl) : renvoie le Nombre de lignes , pas de Colonnes !
Cbx_Client.List = tb ' dans le fichier, il y aura 5 colonnes au lieu de 10 !
Bonne fin de Journée
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re
pas sûr d'avoir Compris Lol
Mais , Si tu as supprimé les données du tableau ,il n'a plus de Ligne de données , donc il te faut ajouter une Ligne exemple :
VB:
Set Ligne=.LisRows.add.........
ou alors faire référence à la première Ligne (qui est vide)
Code:
ThisWorkbook.Sheets("Base clients").Range("t_Clients").Cells(1)
voir fichier joint
j'ai vidé le tableau !
voir ce que j'ai fait (à toi de voir !)
Jean marie
 

Pièces jointes

  • Test devis(1) Chti160-1.xlsm
    280.1 KB · Affichages: 1

patricktoulon

XLDnaute Barbatruc
re
VB:
Private Sub Cbn_NouveauClient_Click()
    With ThisWorkbook.Sheets("Base clients").ListObjects("t_Clients")
        ID = .ListRows.Add.Range.Cells(1)
        v = Replace(ID, "C", "") + 1
        Cbx_Client = Format(v, """C""0000")
    End With
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…