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

  • Initiateur de la discussion Initiateur de la discussion natorp
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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) =...
re
Bonjour @natorp
Pour afficher ce contenu, nous aurons besoin de votre consentement pour définir des cookies tiers.
Pour plus d'informations, consultez notre page sur les cookies.
Houlala, c'est vraiment super, merci beaucoup
par contre lorsque que je clique sur "Nouveau devis", il affiche par défaut le devis du client "C0007"
Je ne vois pas comment "purger" ça

Merci beaucoup pour ton aide très précieuse, cordialement, Gérard
 
re
j'ai un peu modifier et mis les purge
VB:
Private Sub Cbn_NouveauDevis_Click()
    Dim X&, Z&
    TbL = Range("archivedevis").Value
    For I = 1 To UBound(TbL)
        X = Val(Replace(TbL(I, 1), "D", ""))
        If Z <= X Then Z = X
    Next

    Cbx_Devis.Value = Format(Z + 1, """D""0000")
    Cbx_Client = ""
    Tbx_Raison = ""
    Tbx_DateDevis = ""
ListBX.Clear
End Sub
 
re
Bonjour @natorp
Pour afficher ce contenu, nous aurons besoin de votre consentement pour définir des cookies tiers.
Pour plus d'informations, consultez notre page sur les cookies.
Aïe aïe, en fait, le bouton "nouveau devis" ne fonctionne pas, il affiche systématiquement le dernier devis (D0003) et on ne peut pas créer de nouveau devis
Merci pour ton aide, cordialement, Gérard
 
re
j'ai un peu modifier et mis les purge
VB:
Private Sub Cbn_NouveauDevis_Click()
    Dim X&, Z&
    TbL = Range("archivedevis").Value
    For I = 1 To UBound(TbL)
        X = Val(Replace(TbL(I, 1), "D", ""))
        If Z <= X Then Z = X
    Next

    Cbx_Devis.Value = Format(Z + 1, """D""0000")
    Cbx_Client = ""
    Tbx_Raison = ""
    Tbx_DateDevis = ""
ListBX.Clear
End Sub
Super, nos messages se sont croisés, merci beaucoup, ça marche !!
Bonne journée, Gérard
 
Bonjour @natorp
j'en ai profité que c'est samedi tranquille pour avancer dans le projet
étape 3 facturation
Pour afficher ce contenu, nous aurons besoin de votre consentement pour définir des cookies tiers.
Pour plus d'informations, consultez notre page sur les cookies.
Merci Patrick
je suis vraiment reconnaissant pour ce travail (du samedi), personnellement je n'avais aucune disponibilité ce WE, et je découvre le super travail que tu nous as fait. Je vais effectivement pouvoir coder les boutons "quitter" sans problème
Nous allons commencer notre activité avec un 1er super outil. Avec le temps je reviendrai certainement vers toi pour améliorer ce fichier
très cordialement, bonne semaine, Gérard
 
Bonjour @natorp
j'en ai profité que c'est samedi tranquille pour avancer dans le projet
étape 3 facturation
Pour afficher ce contenu, nous aurons besoin de votre consentement pour définir des cookies tiers.
Pour plus d'informations, consultez notre page sur les cookies.
Patrick
Je ne comprends pas, quand je regarde ta vidéo, les lignes d'un devis apparaissent bien dans la facture
Mais quand j'utilise ton fichier joint elles n'apparaissent pas sur la facture
Merci, Gérard
 
j'etais d'humeur taquine ce week 🥳 🥳 🥳 🥳

VB:
Private Sub Cbn_Facturer_Click()

    Dim oldindex
    With Sheets("FACTURE")
        oldindex = .[E6].Text
        .[E6] = Format(Val(Replace(.[E6], "F", "")) + 1, """F""0000")
        Range("D9:D14,D7:E7,B20:E35,E37,E39,B44").ClearContents
        Id = Cbx_Client
        X = WorksheetFunction.Match(Id, Range("t_Clients").Columns(1).Cells, 0)
        prenom = Range("t_Clients").Cells(X, 3)
        Addr = Range("t_Clients").Cells(X, 4)
        cdp = Range("t_Clients").Cells(X, 5)
        ville = Range("t_Clients").Cells(X, 6)

        .[d7] = Date
        .[D9] = Tbx_Raison & " " & prenom
        .[D10] = Addr
        .[D11] = ville
        .[D12] = cdp
        .[B41] = "Référence devis: " & Cbx_Devis
        .[B42] = "Date devis: " & Tbx_DateDevis

tb = ListBX.List

        .[B20].Resize(ListBX.ListCount, 4).Value = tb
        .[B38,E37,E39].Value = CDbl(Tbx_MontantHTDevis)
        DoEvents

        If MsgBox("Voulez vous imprimer la facture ?", vbYesNo) Then
            Me.Hide
            .PrintPreview
            Me.Show
            With Range("memofacture").ListObject.ListRows.Add.Range
                .Cells(1) = Sheets("FACTURE").[E6]
                .Cells(2) = Cbx_Devis
            End With

        Else
            .[E61] = oldindex
        End If

    End With


End Sub
 
j'etais d'humeur taquine ce week 🥳 🥳 🥳 🥳

VB:
Private Sub Cbn_Facturer_Click()

    Dim oldindex
    With Sheets("FACTURE")
        oldindex = .[E6].Text
        .[E6] = Format(Val(Replace(.[E6], "F", "")) + 1, """F""0000")
        Range("D9:D14,D7:E7,B20:E35,E37,E39,B44").ClearContents
        Id = Cbx_Client
        X = WorksheetFunction.Match(Id, Range("t_Clients").Columns(1).Cells, 0)
        prenom = Range("t_Clients").Cells(X, 3)
        Addr = Range("t_Clients").Cells(X, 4)
        cdp = Range("t_Clients").Cells(X, 5)
        ville = Range("t_Clients").Cells(X, 6)

        .[d7] = Date
        .[D9] = Tbx_Raison & " " & prenom
        .[D10] = Addr
        .[D11] = ville
        .[D12] = cdp
        .[B41] = "Référence devis: " & Cbx_Devis
        .[B42] = "Date devis: " & Tbx_DateDevis

tb = ListBX.List

        .[B20].Resize(ListBX.ListCount, 4).Value = tb
        .[B38,E37,E39].Value = CDbl(Tbx_MontantHTDevis)
        DoEvents

        If MsgBox("Voulez vous imprimer la facture ?", vbYesNo) Then
            Me.Hide
            .PrintPreview
            Me.Show
            With Range("memofacture").ListObject.ListRows.Add.Range
                .Cells(1) = Sheets("FACTURE").[E6]
                .Cells(2) = Cbx_Devis
            End With

        Else
            .[E61] = oldindex
        End If

    End With


End Sub
Super, merci
Encore 2 questions, comment faire pour que les valeurs (prix unitaire et montant) de chaque ligne qui alimentent la facture, la virgule soit remplacée par un point, sinon le symbole "euro" n'apparaît pas
Et pourquoi 61 à cet endroit ?
VB:
        Else
            .[E61] = oldindex
Merci beaucoup, cordialement, Gérard
 
Dernière édition:
non c'est E6 pas E61 pardon
c'est au cas ou tu veux pas imprimer(click non dans le message) le numero revient au précedent
Bonjour Patrick

Me voilà de retour avec mon fichier finalisé, mais voilà après avoir valider un devis pour la première fois, au moment d'imprimer ce devis j'ai une erreur "incompatibilité de type" sur les lignes jaunes :
1728466349792.png

1728466447577.png


Merci pour ton aide, cordialement, Gérard
 

Pièces jointes

Bonjour tout le monde

Je reviens avec une erreur de total :
1730810245460.png

Le total est erroné : 230.66 au lieu de 232.88
Apparemment, le tableau "oublie" d'additionner les valeurs après la virgule, il ne compte que la dernière ligne.

Et j'ajoute à cette demande la possibilité de supprimer une ligne dans ce tableau

merci pour votre aide, cordialement, Gérard
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
679
Retour