Bonjour tous le monde ,
Peut-on couper une date 30/07/2013 16:01 pour l'avoir comme ceci 30/07/2013
en VBA?
Merci d'avance
Bonjour tous le monde ,
Peut-on couper une date 30/07/2013 16:01 pour l'avoir comme ceci 30/07/2013
en VBA?
Merci d'avance

Code : Sélectionner tout - Visualiser dans une fenêtre à part format(date,"dd/mm/yyyy")
en faite je me suis mal exprimé,
j'ai une colonne D dont le format de la date est 30/07/2013 11:17 , la plage des dates commence à D2.
Mon but est de faire une macro qui remplace toutes les dates (30/07/2013 11:17 ) par 30/07/2013
Est ce possible ?
Désolé pour la mauvaise formulation sur mon post précédent
Merci d'avance








Bonjour thomhcv59
Tu peux extraire la partie date avec
Si tu voulais la partie heure, ce serait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 valeur = Cells(i, "A").Value Cells(i, "A").Value = DateValue(CDate(valeur )))
Code : Sélectionner tout - Visualiser dans une fenêtre à part Cells(i, "A").Value = TimeValue(CDate(valeur )))
robert a répondu à ta question... il te suffit de changer ton format soit tu boucles et tu fais une macro et tu te galères soit tu cliques sur la colonne et tu changes le format.
Bonjour Docmarti,
Quand je lance ton code il me met une erreur
" erreur définie par l'application ou par l'objet "








Voici le code. Modifie la valeur de la variable DerniereLigne selon tes besoins.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub GarderDate() DerniereLigne = 100 For i = 2 To DerniereLigne valeur = Cells(i, "A").Value Cells(i, "A").Value = DateValue(CDate(valeur)) Next End Sub
Bonjour,
s'il est vraiment nécessaire de tronquer les cellules de la colonne D en date sans heure, il y a une autre voie en gardant à l'esprit
le format date étant avant tout un nombre, la partie entière réservée à la date et la partie fractionnaire dévolue à l'heure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub Demo() Dim Cel As Range Application.ScreenUpdating = False For Each Cel In Range("D2:D" & Cells(Rows.Count, 4).End(xlUp).Row) If IsDate(Cel.Value) Then Cel.Value2 = Fix(Cel.Value2) Cel.NumberFormat = "dd/mm/yyyy" End If Next Application.ScreenUpdating = True End Sub__________________________________________________________________________________________
Merci de cliquer surpour chaque message ayant aidé puis sur
pour clore cette discussion …

désolé si je ne donne pas vraiment l'impression de me préoccuper du problème, mais je n'est pas vraiment compris la finalité!
si il est question de présentation des dates aux format "dd/mm/yyyy", il y a l'enregistreur de macro qui le fera très bien.le fait en une seul passe!
Code : Sélectionner tout - Visualiser dans une fenêtre à part Columns("d:d").NumberFormat = "dd/mm/yyyy"
si il est question de faire un traitement pour envoyer ces date dans une autre feuille intéressons nous à ce traitement car je ne comprends pas ce que nous orrions à dire de plus.
en revanche la macro de Marc-L répond bien à l'expression de besoin.
Merci Robert, c'est pour cela j'ai commencé par s'il est vraiment nécessaire …
Et si la plage de cellules concernées est exclusivement au format date avec des dates valides sans cellule vide,
j'ai en magasin plus rapide au lieu de scanner cellule par cellule …
__________________________________________________________________________________________
Question bien formulée, solution assurée ! (Robert Durupt)
Merci à tous pour vos réponses ca marche
Cordialement
Thomas
Partager