• Initiateur de la discussion Initiateur de la discussion Tsegp
  • Date de début Date de début

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 !

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

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
 
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
 
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 🙏
 
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.
 
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... 😡

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

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)
 
Bonjour amigo !

Il semble s'agir d'un arrondi (=ARRONDI(valeur;0) et non d'une transformation de format (date vers texte, si c'est ce que du moins ce que souhaites notre ami... Encore faut-il que nous le sachions...
Bien cordialement,
Pierre
 
- 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
7
Affichages
305
Réponses
12
Affichages
471
Réponses
5
Affichages
343
Réponses
6
Affichages
596
Réponses
1
Affichages
251
Compte Supprimé 979
C
Réponses
2
Affichages
292
Réponses
2
Affichages
196
  • Question Question
Microsoft 365 erreur de date
Réponses
2
Affichages
455
Retour