XL 2016 Problème de date

Julieneymery

XLDnaute Nouveau
Bonjour,
J'ai sur ce classeur un problème de format de date sur les colonnes date début de contrat et date fin de contrat
J'ai pourtant configuré les cellules en dd/mm/yyyy dans mon code et dans les cellules.
Pourtant il l'affiche en mm/dd/yyyy ... et seulement pour ces cellules, les autres cellules dates ce remplissent avec le bon format...

Sur le fichier lancer la macro deprotege
Le code est sur le userform ajouté

Merci pour votre temps
 

Pièces jointes

  • Classeur V5.2.xlsm
    96.8 KB · Affichages: 17

ChTi160

XLDnaute Barbatruc
Bonjour julie
Oups : bonjour M12
peut être en utilisant ( après avoir formaté tes Colonnes au format Dates)
par exemple :
VB:
.Cells(lastline, 10) = DateValue(Me.Txtdebut) 'format de date
Bonne journée
jean marie
Ps :
il y a aussi pas mal de calendriers sur le Forum qui permettent de faciliter la saisie de dates dans des TextBox à voir
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
ce que j'ai modifié dans la procédure du Bouton "Valider_et_saisir"
VB:
Private Sub Valider_et_saisir_Click()
Application.ScreenUpdating = False
Call Module3.Déprotege

With Sheets("Base de données")
   With .ListObjects("Tbase")
        .ListRows.Add 'ajoute une ligne à la table "TBase")
         With .DataBodyRange
  lastline = .Rows.Count 'récupère le nombre de ligne au total ==> la dernière est vide
             .Cells(lastline, 2) = Me.Txtinitiales
             .Cells(lastline, 3) = Me.Txtnom
             .Cells(lastline, 4) = Me.Txtprenom
             .Cells(lastline, 6) = Me.Txtentreprise
             .Cells(lastline, 7) = Format(Me.Txtsiret.Value, 0)
             .Cells(lastline, 8) = Me.Cbxopco
             .Cells(lastline, 10) = DateValue(Me.Txtdebut) ', "dd/mm/yyyy") 'format de date
             .Cells(lastline, 11) = DateValue(Me.Txtfin) ', "dd/mm/yyyy") 'format de date
             .Cells(lastline, 23) = Me.Cbxdiplome
             .Cells(lastline, 24) = Me.Cbxsite
         End With
   End With
End With
With Sheets("thr")
   With .ListObjects("Tthr")
        .ListRows.Add
      With .DataBodyRange
    lastline = .Rows.Count
        .Cells(lastline, 2) = Me.Txtnom
        .Cells(lastline, 3) = Me.Txtprenom
        .Cells(lastline, 30) = Format(Me.Txtfin, "dd/mm/yyyy") 'format de date
      End With
    End With
End With

With Sheets("caisse à outils")
  With .ListObjects("Tcaisse")
       .ListRows.Add
    With .DataBodyRange
        lastline = .Rows.Count
         .Cells(lastline, 2) = Me.Txtnom
         .Cells(lastline, 3) = Me.Txtprenom
         .Cells(lastline, 4) = Me.Cbxdiplome
         .Cells(lastline, 5) = Me.Cbxsite
         .Cells(lastline, 7) = Me.Txtalertecaisse
         .Cells(lastline, 18) = Format(Me.Txtfin, "dd/mm/yyyy") 'format de date
    End With
  End With
End With

Application.ScreenUpdating = True
Me.Txtinitiales = "" 'la valeur de la celulle active est = a la textbox de ce formulaire(me)
Me.Txtnom = ""
Me.Txtprenom = ""
Me.Txtentreprise = ""
Me.Txtsiret = ""
Me.Cbxopco = ""
Me.Txtdebut = ""
Me.Txtfin = ""
Me.Cbxdiplome = ""
Me.Cbxsite = ""
Me.Txtalertecaisse = ""
End Sub
y'a 'til un changement ou non avec ce qui t'a été proposé?
jean marie
jean marie
 

patricktoulon

XLDnaute Barbatruc
Bonjour
excel est d'abords en anglais (US)
les cellules (même des date) sont des numérique et pas le texte par exemple (01/01/2021)
ce que l'on peut lui envoyer c'est
cdate("01/01/2021")
ou bien encore
datevalue("01/01/2021")

le problème c'est que tes textbox c'est du texte(string) il envoie donc le texte de la date
on envoie donc pas la le texte d'une date dans une cellule brut comme ça
ni format(date,"dd/mm/yyyy") d'ailleurs car format envoie du texte
donc on passe par cdate ou datevalue et puis c'est tout
tu formate le format de date avec numberformat="dd/mm/yyyy" sur les cellules
pas compliqué ;)

donc perdu pour M12 et gagné pour ChT160😁
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 944
Membres
101 849
dernier inscrit
florentMIG