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: 67
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
616

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972