XL 2019 Date vba

Tsegp

XLDnaute Nouveau
Bonjour a tous

J'ai un classeur avec des dates en colonne A au format jj/mm/aaaa hh:mm:SS

Je cherche a recopier ces dates en colonne B au format jj/mm/aaaa via VBA.

Une idée?

Je précise que je souhaite pas le faire avec des formules et format mais bien en VBA.

Merci d'avance a tous
 

Pièces jointes

  • Classeur3.xlsx
    8.9 KB · Affichages: 7

vgendron

XLDnaute Barbatruc
Bonjour

avec ce code
VB:
Sub recopie()
With Sheets("Feuil1")
    fin = .Range("A" & .Rows.Count).End(xlUp).Row
    .Range("B2:B" & fin) = .Range("A2:A" & fin).Value
    .Range("B2:B" & fin).NumberFormat = "dd/mm/yyyy"
End With
End Sub
 

Tsegp

XLDnaute Nouveau
Bonjour

avec ce code
VB:
Sub recopie()
With Sheets("Feuil1")
    fin = .Range("A" & .Rows.Count).End(xlUp).Row
    .Range("B2:B" & fin) = .Range("A2:A" & fin).Value
    .Range("B2:B" & fin).NumberFormat = "dd/mm/yyyy"
End With
End Sub
Bonjour

D'abord merci.

Cela fonctionne pas car dans la barre de formule il reste affiché au format jj/mm/aaaa hh:mm:SS

J'ai besoin que la barre de formule soit au format jj/mm/aaaa
 

vgendron

XLDnaute Barbatruc
VB:
Sub recopie()
With Sheets("Feuil1")
    Dim TabData() As Variant
    fin = .Range("A" & .Rows.Count).End(xlUp).Row
    TabData = .Range("A2:A" & fin).Value
    For i = LBound(TabData, 1) To UBound(TabData, 1)
        TabData(i, 1) = DateSerial(Year(TabData(i, 1)), Month(TabData(i, 1)), Day(TabData(i, 1)))
    Next i
    .Range("B2:B" & fin) = TabData
    
    .Range("B2:B" & fin).NumberFormat = "dd/mm/yyyy"
End With
End Sub
 

Tsegp

XLDnaute Nouveau
VB:
Sub recopie()
With Sheets("Feuil1")
    Dim TabData() As Variant
    fin = .Range("A" & .Rows.Count).End(xlUp).Row
    TabData = .Range("A2:A" & fin).Value
    For i = LBound(TabData, 1) To UBound(TabData, 1)
        TabData(i, 1) = DateSerial(Year(TabData(i, 1)), Month(TabData(i, 1)), Day(TabData(i, 1)))
    Next i
    .Range("B2:B" & fin) = TabData
   
    .Range("B2:B" & fin).NumberFormat = "dd/mm/yyyy"
End With
End Sub
Super, 👍🏻 un grand merci 🙏
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Contrairement à ce qui est souvent décrits par les demandeurs, ça n'existe pas des dates à tel ou tel format dans les cellules.
Ce qui existe, ce sont des dates ou autre chose que des dates. Les valeurs de cellules qui ne sont pas de type Date peuvent être String, Double, Currency, Boolean, Empty ou Error, encore que les Date et Currency sont en réalité enregistrés en tant que Double dans le modèle mémoire du classeur. Le format de cellule, quant à lui, détermine seulement comment un Double est affichée, de façon purement visuelle, dans la cellule.
 

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour a tous

J'ai un classeur avec des dates en colonne A au format jj/mm/aaaa hh:mm:SS

Je cherche a recopier ces dates en colonne B au format jj/mm/aaaa via VBA.

Une idée?

Je précise que je souhaite pas le faire avec des formules et format mais bien en VBA.

Merci d'avance a tous
Bonjour Tsegp et mes amitiés à Vgendron.
Je pense avoir compris ce que tu souhaites obtenir. De fait, tu ne veux plus voir apparaître de référence de dates ou de calculs dans les formules dérivées. Sans doute veux-tu les vois apparaître sous un format "Texte" que tu peux d'ailleurs arranger à ton goût. (16/03/2011 ou 16-03-2011 ou autre chose encore)
Mon petit niveau Excel (que Vgendron te confirmera ) m'a permis d'obtenir un résultat (par les moyens les plus basiques) de transformer un format date en format texte. J'ai modifier les cellules de la colonne A pour avoir des résultats plus parlant. Je le ai transformées en Texte et j'ai ensuite copié les valeurs (collage spécial "Valeur" dans la colonne Texte, mais manuellement... :mad:

Autrement, je ne sais pas faire et je te jures que j'ai essayé

D'après ce que j'ai compris, tu ne souhaite pas opérer d'opérations de tri, bref liées à la valeur numérique des cellules. Parce que le mode texte ne s'y prête pas du tout et la proposition de Vgendron serait plus adaptée dans la cas contraire.

Si c'est ce que tu souhaites (format texte), je pense que Vgendron te sera plus utile que moi mais je vais réviser ! 😊
Bien cordialement,
Pierre
 

Pièces jointes

  • Classeur3bis.xlsm
    16.4 KB · Affichages: 0

vgendron

XLDnaute Barbatruc
pour compléter ce que dit Bernard, une date, c'est juste un nombre
1 = 01/01/1900 00:00:00
2=02/01/1900 00:00:00
1.5....1er janvier 1900 à midi..

le format, c'est donc juste une manière de l'afficher

passer du format jj/mm/aaaa hh:mm:ss au format jj/m/aaaa, ca revient à arrondir le nombre à la valeur entière
plutot que reconstruire la date à partir du jour mois année, comme je l'ai fait, on pouvait juste faire un rounddown(valeur,0)
 

Statistiques des forums

Discussions
312 209
Messages
2 086 259
Membres
103 167
dernier inscrit
miriame