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

[Résolu]Code qui renvoie 09/02/2013

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Thibault98

XLDnaute Occasionnel
Bonsoir,

J'ai trouvé par hasard un code qui m'intéresse, je l'ai collé dans une feuille qui s'appelle "exemple" puis en colonne C avec "donnée validation" j'ai créé une liste avec deux options.

Lorsque je sélectionne un élément dans cette liste une ou deux dates apparaissent, ça fonctionne bien sauf que les dates devraient apparemment être = à la date du jour or EXCEL renvoi 09/02/2013.


Comment résoudre ce problème ?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LiGne As Integer
If Target.Column = 3 Then
LiGne = ActiveCell.Row
With Sheets("Exemple")

   If ActiveCell = "Naissance" Then
  .Cells(LiGne, 9) = Format(Now(), "dd/mm/yyyy")
  .Cells(LiGne, 10) = Format(Now(), "dd/mm/yyyy")
  End If
     If ActiveCell = "Achat" Then
  .Cells(LiGne, 9) = ""
  .Cells(LiGne, 10) = Format(Now(), "dd/mm/yyyy")
  End If
   If ActiveCell = "" Then
  .Cells(LiGne, 9) = ""
  .Cells(LiGne, 10) = ""

End If
End With
End If
End Sub

Merci,
Thibault
 
Dernière édition:
Re : Code qui renvoie 09/02/2013

Bonsour® la fonction Format renvoie un texte formatté (qui "by design" est interprété au moment de son introduction dans la feuille)
en fait c'est à la cellule qu'il faut affecter un format après lui avoir envoyé un nombre (format interne) représentant une date

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LiGne As Integer
If Target.Column = 3 Then
LiGne = ActiveCell.Row
With Sheets("Exemple")

  If ActiveCell = "Naissance" Then
  .Cells(LiGne, 9) = Now()
  .Cells(LiGne, 10) = Now()
  End If
  If ActiveCell = "Achat" Then
  .Cells(LiGne, 9) = ""
  .Cells(LiGne, 10) = Now()
  End If
  If ActiveCell = "" Then
  .Cells(LiGne, 9) = ""
  .Cells(LiGne, 10) = ""
  End If
  .Cells(LiGne, 9).NumberFormat="dd/mm/yyyy"
  .Cells(LiGne, 10).NumberFormat="dd/mm/yyyy"

End With
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
912
Réponses
15
Affichages
786
Réponses
6
Affichages
641
Réponses
2
Affichages
772
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…