Problemes format textbox

Bonjour,

Décidément j'ai bien des problèmes avec les formats de textebox

Dans le fichier ci joint ,lorsque je valide les données de l'UF3 le jour et le mois sont inversés dans mon tableau de la feuille 2, je ne comprends pas pourquoi

de plus je souhaiterai également pouvoir mettre les textbox de l UF1 en format monétaire. j'ai déjà eu des réponses à ce problème mais je n'ai pas réussi a appliquer les conseils donnés

je vous remercie par avance

Bonjour,

Dans le fichier ci joint ,lorsque je valide les données de l'UF3 le jour et le mois sont inversés dans mon tableau de la feuille 2, je ne comprends pas pourquoi

Normal ! VBA est américain, donc les dates sont transformées en mois/jour/année (quand c'est possible = jour < 12)

Lors de la validation, il faut donc que tu fasses un traitement de la donnée (dans ton formulaire les zones sont des zones de texte).

Personnellement, j'ai abandonné les userform (sauf cas particuliers) et je crée mes formulaires dans un onglet de la feuille. Ainsi je dispose des formats numériques et date sans aucun problème de conversion.

Bonjour phil107,

Voici un essai en pièce jointe.

Edit: Bonjour Steelson

Un détricotage ...

Dim jourS As String, moisS As String, anneeS As String, dateTextBox As String
If Len(dateTextBox) = 10 Then ' Donc jj/mm/aaaa
    jourS = Mid(dateTextBox, 1, 2) 'Permet de séparer ta chaine de caractère
    moisS = Mid(dateTextBox, 4, 2)
    anneeS = Mid(dateTextBox, 7, 4)
End If

edit : Bonjour Florian

Mais j'insiste : je trouve que l'on gagne en temps quand on met un formulaire comme un onglet !

Bonjour Phil, bonjour le forum,

Pour la date essaie comme ça :

Tu formates dans le tableau la colonne B au format de date que tu désires, puis tu modifies le code.

'AJOUTER UNE DONNEE
Private Sub commandbutton1_click()
Dim D As Long
Dim derligne As Integer
If MsgBox("Confirmez-vous cet ajout", vbYesNo, "Confirmation") = vbYes Then
    derligne = Sheets("REMISE BANQUE").Range("A456541").End(xlUp).Row + 1
    D = CLng(DateSerial(Year(TextBox1.Value), Month(TextBox1.Value), Day((TextBox1.Value))))
    Cells(derligne, 2) = D
    Cells(derligne, 3) = ComboBox1.Value
    Cells(derligne, 4) = TextBox4.Value
    Cells(derligne, 6) = ComboBox5.Value
    Cells(derligne, 7) = TextBox3.Value
    Cells(derligne, 8) = ComboBox4.Value
End If
End Sub

Le code va renvoyer une donnée de type Long qui prendra automatiquement le format imposé dans le tableau sans inverser les jours et les mois.

Pour le format monétaire, tu peux coder pour chaque ligne :

Cells(no_ligne, 2) = TextBox21.Value
Cells(no_ligne, 2)NumberFormat = "#,##0.00 $" 'à adapter

[Édition]

Ouf !... Très en retard... Bonjour Florian et Steelson.

enfin ca marche

mercie à tous pour vos solutions

Personnellement, j'ai abandonné les userform (sauf cas particuliers) et je crée mes formulaires dans un onglet de la feuille. Ainsi je dispose des formats numériques et date sans aucun problème de conversion.

Voici un formulaire tel que je le conçois, bien plus facile à mettre en oeuvre (libellés, contrôles de validité ... tout est fait dans une feuille dédiée) https://forum.excel-pratique.com/viewtopic.php?f=2&t=120474&p=734639#p734639 , même si ici la présentation mériterait plus de simplicité !

Rechercher des sujets similaires à "problemes format textbox"