Userform / validation format €

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 !

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
 
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: 60
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
 
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:
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
 
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
 
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: 51
- 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
2
Affichages
203
Réponses
4
Affichages
179
Réponses
41
Affichages
702
Réponses
5
Affichages
241
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
481
Retour