Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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


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
    65.9 KB · Affichages: 67
Dernière édition:

dede869

XLDnaute Occasionnel
Re : Format date change dans le formulaire

Bonjour ça fonctionne mais il faut que toutes les CDate(textbox) soit remplis sinon ça bug, il faut que ça fonctionne même si ilk y a des case vide.

Merci

dédé869
 

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®

exemple dans la proc B_validation_Click :
...
.Offset(0,5).Value=IIF (me.TextBox5="", "" ,Cdate(me.TextBox5)) ' date du grief
...


à faire chaque fois qu'il y a conversion de texte à Numérique ou date
 

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 ????
????? ==> .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


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
652
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…