XL 2019 Format de date dans ListBox US (MM/JJ/AAAA) à changer en FR (JJ/MM/AAAA).

Tempus

XLDnaute Junior
Bonjour à tous,

J'ai deux problèmes avec mon fichier Excel, pour le premier, la date passe en format mois, jour, année lorsque je modifie une donnée sur une des lignes dans la Listbox avec le bouton modifier, je souhaiterais que la date reste au format jour, mois, année.

Pour le second problème, j'ai incorporé dans l'Userform un code de tri par date"trouvé sur le net", celui-ci fonctionne très bien, sauf que les calculs avec les colonnes H et I deviennent incorrect après le tri.

J'ai testé plusieurs pistes,pour ces deux problèmes, mais rien n'a fonctionné, je vous sollicite donc une nouvelle fois.

Le code du bouton Modifier est ci-dessous et, le fichier est en pièce jointe.

Merci à vous.


Private Sub CommandButton3_Click()

Dim a, b, c, d, j, e, f, g, h, i As String

a = TextBox1.Value
b = TextBox9.Value
c = TextBox10.Value
d = TextBox2.Value
e = TextBox3.Value
f = TextBox4.Value
g = TextBox5.Value
h = TextBox6.Value
i = TextBox7.Value
j = TextBox8.Value
K = TextBox13.Value



Dim lig As Integer
Dim Cible As Integer
If ListBox1.ListIndex = -1 Then Exit Sub
lig = ListBox1.ListIndex + 2
Cible = ListBox1.ListIndex
Worksheets("BD").Cells(lig, 1) = a
Worksheets("BD").Cells(lig, 2) = b
Worksheets("BD").Cells(lig, 3) = c
Worksheets("BD").Cells(lig, 4) = d
Worksheets("BD").Cells(lig, 5) = e
Worksheets("BD").Cells(lig, 6) = f
Worksheets("BD").Cells(lig, 7) = g
'Worksheets("BD").Cells(lig, 8) = h ' Original

Worksheets("BD").Cells(lig, 8).FormulaLocal = "=" & Cells(lig, 7).Address & "/" & Cells(lig, 6).Address
Worksheets("BD").Cells(lig, 8).NumberFormat = "0.0"
Worksheets("BD").Cells(lig, 9).FormulaLocal = "=" & Cells(lig, 5).Address & "/" & Cells(lig, 8).Address
Worksheets("BD").Cells(lig, 9).NumberFormat = "0.000"

'Worksheets("BD").Cells(lig, 9) = i
Worksheets("BD").Cells(lig, 10) = j
Worksheets("BD").Cells(lig, 11) = K
ListBox1.RowSource = ""

Set f = Sheets("BD")
Set rng = f.Range("A2:K" & f.[A65000].End(xlUp).Row)
NbCol = rng.Columns.Count
TblBD = rng.Value
Me.ListBox1.List = TblBD
Me.ListBox1.ColumnCount = NbCol
'UserForm2.ListBox1.Selected(Cible) = True

Dim z As Integer
With ListBox1
For z = 0 To ListBox1.ListCount - 1
.List(z, 7) = Format(.List(z, 7), "0000.0")
.List(z, 8) = Format(.List(z, 8), "0.000")
Next z
End With

End Sub
 

Pièces jointes

  • Format de date dans ListBox US MMJJAAAA à changer en FR JJMMAAAA.xlsm
    51.8 KB · Affichages: 70
Solution
Le code avec 0,97 :
VB:
With [Bd[Conformité]]
    .NumberFormat = "General"
    .FormulaLocal = "=SI(OU([@RVBF]>1,03+0,03*OU(GAUCHE([@Formule];3)=""INI"";GAUCHE([@Formule];3)=""INS"");[@RVBF]<0,97-0,03*OU(GAUCHE([@Formule];3)=""INI"";GAUCHE([@Formule];3)=""INS""));""NC"";"""")"
End With

Tempus

XLDnaute Junior
Bonsoir à tous,
Bonsoir le forum,

Je souhaiterais ajouter une condition supplémentaire dans le code.

Pouvez-vous m'aider.

Actuellement, il y a celle-ci.

[Bd [Conformité]]. FormulaLocal = "= SI (OU ([@ R]> 1,03; [@ R] <0,97);" "NC" ";" "" ")"

et j'aimerais ajouter en plus celle-la.

'si les caractères INI ou INS apparaissent dans la colonne Formule alors il faut appliquer cette règle et, non celle du dessus.

[Bd [Conformité]]. FormulaLocal = "= SI (OU ([@ R]> 1,06; [@ R] <0,94);" "NC" ";" "" ")"



Le fichier est en pièce jointe.
Merci à vous.
 

Pièces jointes

  • ajouter une condition à la colonne Formule.xlsm
    61.8 KB · Affichages: 12
Dernière édition:

job75

XLDnaute Barbatruc
Le code avec 0,97 :
VB:
With [Bd[Conformité]]
    .NumberFormat = "General"
    .FormulaLocal = "=SI(OU([@RVBF]>1,03+0,03*OU(GAUCHE([@Formule];3)=""INI"";GAUCHE([@Formule];3)=""INS"");[@RVBF]<0,97-0,03*OU(GAUCHE([@Formule];3)=""INI"";GAUCHE([@Formule];3)=""INS""));""NC"";"""")"
End With
 

job75

XLDnaute Barbatruc
Comment testez-vous ? La formule que j'ai proposée fonctionne très bien.

Le "NC" en L13 n'a aucune raison de s'effacer puisqu'on a J13 = 10,143 > 1,03.

Si l'on entre 1,06 en J11 le "NC" ne s'affiche pas, si l'on entre 1,07 il s'affiche.
 

job75

XLDnaute Barbatruc
Si J est compris entre 0.97 et 1.03 =Ok sinon NC dans L.
Sauf lorsque INI ou INS sont inscrits dans J alors NC dans L si valeur pas comprise entre 0.94 et 1.06.
Avec ma formule c'est :
Si J est compris entre 0.97 et 1.03 ="" sinon NC dans L.
Sauf lorsque INI ou INS sont inscrits dans E alors NC dans L si valeur pas comprise entre 0.94 et 1.06.
 

Tempus

XLDnaute Junior
job75 a dit:
"Si J est compris entre 0.97 et 1.03 ="" sinon NC dans L.
Sauf lorsque INI ou INS sont inscrits dans E alors NC dans L si valeur pas comprise entre 0.94 et 1.06. "

Effectivement, c'est bien dans E qu' INI ou INS sont saisis et non dans J comme je l'ai écrit.

Mais dans l'exemple ci dessous J a une valeur de 0.966 et le NC s'affiche dans L quand même, malgré que le INI soit bien inscrit dans E.

1600417711020.png
 

Discussions similaires

Réponses
3
Affichages
2 K

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla