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
 

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
 

Pièces jointes

  • BUDGET - DEMO.xlsm
    98.7 KB · Affichages: 95
  • BUDGET - DEMO.xlsm
    98.7 KB · Affichages: 91
Dernière édition:

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

Pièces jointes

  • Capture.PNG
    Capture.PNG
    9.8 KB · Affichages: 56

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
 

Pièces jointes

  • Capture.PNG
    Capture.PNG
    44.4 KB · Affichages: 48

Discussions similaires

Réponses
17
Affichages
249
Réponses
2
Affichages
129

Statistiques des forums

Discussions
311 711
Messages
2 081 792
Membres
101 817
dernier inscrit
carvajal