Userform / validation format €

GADENSEB

XLDnaute Impliqué
Bonjour le Forum,
J’espère que vous allez bien !

Je reviens avec une question basique mais qui me pose probléme :
La validation des données à la sortie d'un Userform
J'ai 2 textbox (DEBIT et CREDIT) que je souhaite valider au format "€" classique.

Pour précision, je ne valide aucun format au moment de la saisie dans les textbox.

J'essaye avec un isnumeric et j'obtiens une erreur
"Erreur de compilation : Sub ou fonction non définie"
mmmm j'ai dû sauter une étape ....

Voici mon code :

Code:
Private Sub Validation_Click()
'Enregistre les données dans la BDD
Dim LastLigne As Integer
Dim ModeRecalcul As Long


ModeRecalcul = Application.Calculation

' Réglage du recalcul sur mode manuel
Application.Calculation = xlCalculationManual
 
If MsgBox("Ajouter une nouvelle Ligne ? ", vbYesNo, " Demande de confirmation d’ajout ") = vbYes Then
 
LastLigne = Sheets("COMPTES").Range("a65536").End(xlUp).Row + 1
Dim c, x&
     For Each c In Me.Controls
    
        If c.Tag <> "" Then
            x = c.Tag
            If IsDate(c.Value) Then
                Feuil3.Cells(LastLigne, x).Value = CDate(c.Value)
             if IsNumeric(c.Value) Then
               Feuil3.Cells(LastLigne, x).Value = SetFocus(c.Value)
            Else
                Feuil3.Cells(LastLigne, x).Value = c.Value
            End If
        End If
    Next
End If
Unload Me

' Rétablissement du mode de recalcul d'origine
Application.Calculation = ModeRecalcul

End Sub

QQn aurais une idée ??

Bonne journée

Seb
 

13GIBE59

XLDnaute Accro
Re : Userform / validation format €

Bonjour GADENSEB,

A un moment, tu dois ajouter : Format(c.Value, "#,##0.00 €").

Mais sans fichier, difficile de te préciser où...

Maintenant, si tu cherches un fichier Comptes, ou t'inspirer du code, c'est là....

JB
 

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

Tiens voila un fichier de demo !!!

Le code se situe dans l'usf "Usf_Saisie"

Je connais ton fichier (génial) c'est ce quoi je veux tendre !!!
Je m'en inspire

Thanks

Bonne am

Seb
 

Fichiers joints

Dernière édition:

13GIBE59

XLDnaute Accro
Re : Userform / validation format €

Re,

J'ai essayé ton fichier. Le userform de saisie renvoie bien des €. Où se trouve le problème ?

JB
 

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

Ben je sias pas !!!
L'erreur est alléatoire ..... quand ya une erreur le montant apparait sous forme d'heure
comment éviter le probéme ?
 

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

Je cherche à figer le renvoi sous forme €
parfois les montants des textbox DEBIT et CREDIT son renvoyer sous forme d'heure 00:00:00

c'est chelou
et aléatoire
 

13GIBE59

XLDnaute Accro
Re : Userform / validation format €

Oui, c'est bizarre, en effet...

Je ne vois pas trop ce que je peux faire pour toi, à part te conseiller de supprimer les doublons de ta combo CG postes !

JB
 

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

Ca j'ai supprimer c'est bon ;-)

Je sais pas trop .... je vais formater les format de colonne au démarrage du fichier ... on vera bien !!

Thanks
 

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

Bon je tente :

'Format € de certaines colonnes
For Each n In Array(15, 16, 17, 18)
.Columns(n).FormatNumber = "#,##0.00 €"
Next n

et j'ai e message d'erreur !!!

Capture.PNG

J'y comprien rien !!! il me parle de date ....
 

Fichiers joints

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

J'ai trouvé !!!!
J'avais mis
Code:
.FormatNumber
au lieu de
Code:
.NumberFormat
et ça passe ;-)

Code:
'Format € de certaines colonnes
For Each n In Array(15, 16, 17, 18)
.Columns(n).NumberFormat = "#,##0.00 €"
Next n

Bonne am

Seb
 

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

Hello
Je viens de comprendre d'où viens l'erreur.

L'erreur s'est répétée

le problème se situe quand je saisie dans l'usf de saisie (dans les textbox DEBIT ou CREDIT) un chiffre avec 2 chiffre après la virgule


exemple : 8.31€

par contre s'il ya qu'un chiffre aprés la virgule (exemple : 8.5€) pas de soucis .


Comment contourner la chose ?


Bonne journée

Seb
 
Dernière édition:

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

Hello 13GIBE59 ,

J'ai réussi à placer un :
Code:
  If IsNumeric(c.Value) Then
                Feuil3.Cells(LastLigne, X).Value = Format(c.Value, "#,##0.00 €")
sauf qu'il faudrait que je cible les textbox DEBIT et CREDIT
car cela fonctionne bien pour eux,j'ai un retour en format € avec 2 chiffres après la virgule
mais du coup mes textbox CODE (code dans la base) et NUMERO (N° de chèque) sont aussi impactés.

J'entrevois 2 solutions :
- Ciblés sur DEBIT et CREDIT
ou
- exclure CODE et NUMERO

.... je cherche depuis hier ...
aurais-tu une idée ?

Bonne journée

Seb

Code:
Private Sub Validation_Click()
'Enregistre les données dans la BDD
Dim LastLigne As Integer
Dim ModeRecalcul As Long

ModeRecalcul = Application.Calculation


' Réglage du recalcul sur mode manuel
Application.Calculation = xlCalculationManual
 
If MsgBox("Ajouter une nouvelle Ligne ? ", vbYesNo, " Demande de confirmation d’ajout ") = vbYes Then
 
LastLigne = Sheets("COMPTES").Range("a65536").End(xlUp).Row + 1
Dim c, X&

     For Each c In Me.Controls
    
        If c.Tag <> "" Then
            X = c.Tag
            If IsDate(c.Value) Then
                Feuil3.Cells(LastLigne, X).Value = CDate(c.Value)
            Else
            If IsNumeric(c.Value) Then
                Feuil3.Cells(LastLigne, X).Value = Format(c.Value, "#,##0.00 €")
            Else
                Feuil3.Cells(LastLigne, X).Value = c.Value
            End If
            End If
            End If
    Next
End If


Unload Me

' Rétablissement du mode de recalcul d'origine
Application.Calculation = ModeRecalcul

End Sub
 

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

J'ai trouvé !!!

Bon We

Seb


Code:
Private Sub Validation_Click()
'Enregistre les données dans la BDD
Dim LastLigne As Integer

If MsgBox("Ajouter une nouvelle Ligne ? ", vbYesNo, " Demande de confirmation d’ajout ") = vbYes Then
 
LastLigne = Sheets("COMPTES").Range("a65536").End(xlUp).Row + 1
Dim c, X&

     For Each c In Me.Controls
            DEBIT.Value = Format(DEBIT.Value, "#,##0.00 €")
            CREDIT.Value = Format(CREDIT.Value, "#,##0.00 €")
        If c.Tag <> "" Then
            X = c.Tag
            If IsDate(c.Value) Then
                Feuil3.Cells(LastLigne, X).Value = CDate(c.Value)
            Else
                Feuil3.Cells(LastLigne, X).Value = c.Value
            End If
            End If
    Next
End If


Unload Me

End Sub
 

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

Bonjour,

Je reviens sur ce poste car en fin de compte le probléme perssiste

Je dois absolument taper mes chiffres (ex: 17.12) avec la virgule, sinon le chiffre ne se reporte pas correctement dans le tableau .....
Là je pige pas ...
Indice supplémentaire : quand je tape un chiffre supérieur à 999.99 soit à 4 chiffres avant la virgule le chiffre se reporte bien dans les données (en tapant avec ",") mais j'ai des erreurs de formule dans les calculs qui se font en cascade aprés l'inscription des données ....
J'ai lu pas mal de choses sur les probléme de "," et "." dans excel mais là je trouve pas !!

cela vient du fichier, car j'ai le mm soucis sur mon pc pro

pour info mes paramétrés régionaux sont comme ceci


Capture.PNG




Est-ce que tuaurais une idée ?

Bonne journée

Sébastien






Code:
If MsgBox("Ajouter une nouvelle Ligne ? " & Chr(10) & TextePopUp, vbYesNo, _
    " Demande de confirmation d’ajout ") = vbYes Then
 
LastLigne = Sheets("COMPTES").Range("a65536").End(xlUp).Row + 1
Dim c, x&

     For Each c In Me.Controls
        DEBIT.Value = Format(DEBIT.Value, "#,##0.00 €")
        CREDIT.Value = Format(CREDIT.Value, "#,##0.00 €")
            
' .Range("P:S").EntireColumn.NumberFormat = "#,##0.00 €"
        If c.Tag <> "" Then
            x = c.Tag
            If IsDate(c.Value) Then
                Feuil3.Cells(LastLigne, x).Value = CDate(c.Value)
            Else
                Feuil3.Cells(LastLigne, x).Value = c.Value
            End If
            End If
    Next
End If
 

Fichiers joints

ChTi160

XLDnaute Barbatruc
Re : Userform / validation format €

Bonjour Sébastien
Bonjour le Fils ,Le Forum

histoire de te saluer , pas évident sans fichier !
Donc une approche sans test ?????
Code VB:
Private Sub Validation_Click()
'Enregistre les données dans la BDD
Dim LastLigne As Long
If MsgBox("Ajouter une nouvelle Ligne ? ", vbYesNo, " Demande de confirmation d’ajout ") = vbYes Then
Dim c, X&
DEBIT.Value = Format(DEBIT.Value, "#,##0.00 €") 'A quoi ça sert ?
CREDIT.Value = Format(CREDIT.Value, "#,##0.00 €") 'Idem
With Sheets("COMPTES") 'Avec la feuille
LastLigne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 'On détermine la dernière ligne non vide de la Colonne A
For Each c In Me.Controls 'Pour chaque Control du Userform
If c.Tag <> "" Then 'si Le Tag du Control n'est pas vide
X = c.Tag 'On récupére la valeur
With .Cells(LastLigne, X).Value 'Avec la cellule ainsi définie
If IsDate(c.Value) Then 'Si le Control contient une date
.NumberFormat = "dd/mm/yyyy" 'On formate la cellule cible
.Value = CDate(c.Value) 'On colle la date
Else 'sinon
.NumberFormat = "#,##0.00 €" 'On formate la cellule au format monétaire
.Value = CCur(c.Value ) 'On colle la valeur
End If
End With
End If
Next 'Autre Control
End With
End If
Unload Me
End Sub




Bonne fin de Journée
Amicalement
Jean marie
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Userform / validation format €

Bonsoir.
Je vous recommanderais CCur au lieu de CDbl pour du monétaire.
 

ChTi160

XLDnaute Barbatruc
Re : Userform / validation format €

Bonsoir Dranred
Bonsoir le Fil ,Le Forum

Merci c'est fait !!! Lol

Bonne fin de Soirée
Amicalement
Jean Marie
 

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

Bonjour à tous, le Forum,
Je reviens aprés 15 jours d'absence et je découvre vos messages.

JE fonce étudier votre code.

Navré de la réponse en retard.

Bonne journée

Seb
 

GADENSEB

XLDnaute Impliqué
Re : Userform / validation format €

Hello !!

Bon je viens de tester le code, cela ne charge pas les données.

J'ai joint mon fichier.

Avec mon ancien code Bt_ValidationOLD_Click() le problème persiste.

Est-ce que vous pouvez jeter un oeil svp .... là j'avoue que je comprends pas !!

Merkiiiii

Bonne soirée

Sébastien
 

Fichiers joints

Discussions similaires


Haut Bas