Format date change dans le formulaire

dede869

XLDnaute Occasionnel
Bonjour a vous,

j'ai fait un formulaire de saisi et de changement. Dans le tableau de donné les date sont sous ce format (2016-04-05) et lorsque j"ouver le formulaire et que je fait une recherche les date son dans un autre format (05/04/2016) et lorsque j'enregistre les modification il enregistre dans le mauvais format. Comment faire pour avoir toujours le meme format (2016-04-05)

Merci

dédé869
 

Pièces jointes

  • Tableau des grief.xlsm
    68.8 KB · Affichages: 37
  • Tableau des grief.xlsm
    68.8 KB · Affichages: 40

Modeste geedee

XLDnaute Barbatruc
Re : Format date change dans le formulaire

Bonsour®
le contenu d'un Textbox est par conception au format texte
il convient donc avant passage dans une cellule de mettre le contenu au format numérique ou date
:rolleyes:
Capture.JPG
réciproquement
il faudra après lecture d'un cellule date formater la valeur à afficher dans le textBox
- la cellule est déjà au format date :
textbox.value =Cellule(x,y).
- la cellule n'est pas formatée selon besoin de visualisation :
textbox.value= format(cellule(x,y), "leformatkivabien")
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    65.9 KB · Affichages: 68
Dernière édition:

Docmarti

XLDnaute Occasionnel
Re : Format date change dans le formulaire

Bonjour.

Une autre proposition :

Code:
Sub Transferer_du_Formulaire_Vers_Cellule()

  
  Dim source As Control
  Dim dest As Range
  
  Set source = Me.Controls("Textbox1")
  Set dest = Worksheets("Feuil1").Cells(2, 5)
  Call EcrireCONTROLEversCellule(dest, source)
  
End Sub

Function EcrireCONTROLEversCellule(c As Range, ctl As Object)
 Dim a As Variant
  
 a = ctl.Text
 memNumberFormat = c.NumberFormat
 
 c.NumberFormat = "General"
 
 If Val(a) <> 0 And Len(CStr(Val(a))) = Len(a) Then
  'Pour accepter le point par le bon séparateur décimal
   v = CDbl(Replace(a, ".", Format(0, ".")))
   c.Value = CDbl(v)
   
 ElseIf IsNumeric(a) Then
 
  c.Value = CDbl(a) 'Numérique --> Value pour conserver la valeur

 Else
 
  c.FormulaLocal = a 'Texte ou Date --> FormulaLocal pour éviter inversion jour/mois si date
  
 End If

'EDIT
If memNumberFormat <> "General" Then
 c.NumberFormat = memNumberFormat
End If
  
End Function

Cordialement

Docmarti
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Format date change dans le formulaire

Bonsour®

réponse plutôt lacunaire !!! on n'est pas devin, pour connaître quelle saisie et ou ???
le mode pas à pas n'est pas seulement fait pour faire geek ...

qu'est qui ne fonctionne pas ???
un peu de reflexion , d'analyse et de logique ...

ces textesboxes sont-elles sensées recevoir des dates ????
.Offset(0, 11).Value = IIf(Me.TextBox11 = "", "", CDate(Me.TextBox11)) 'extention d.lais
.Offset(0, 12).Value = IIf(Me.TextBox12 = "", "", CDate(Me.TextBox12)) 'demande arbitrage

transformation en date d'un texte ???? :mad:
????? ==> .Offset(0, 13).Value = IIf(Me.TextBox13 = "", "", CDate(Me.TextBox13)) 'grief gagné
????? ==> .Offset(0, 14).Value = IIf(Me.TextBox14 = "", "", CDate(Me.TextBox14)) 'grief retité
????? ==> .Offset(0, 15).Value = IIf(Me.TextBox15 = "", "", CDate(Me.TextBox15)) 'grief abandonné
????? ==> .Offset(0, 16).Value = IIf(Me.TextBox16 = "", "", CDate(Me.TextBox16)) 'grief règlé
????? ==> .Offset(0, 17).Value = IIf(Me.ComboBox1 = "", "", (Me.ComboBox1)) 'Non de délégué responsable

:mad:
revoir d'abord le B.A. de VBA avant d'appliquer aveuglement une instruction !!!!

plutôt que de tester/corriger lors de la validation
- vérifier lors de la saisie :
textboxNNN_Change()
textboxNNN_AfterUpdate()
textboxNNN_Enter()
- utiliser également la propriété ControlTipText pour informer de la réponse attendue
 

Discussions similaires

Réponses
18
Affichages
757

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz