XL 2019 Changement de format lors d'export de dates dans autre feuille

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 !

thespeedy20

XLDnaute Occasionnel
Bonjour à tous,

je dois exporter des dates dans une autre feuille, ma macro effectue le travail mais change le format des dates :

J'ai des dates au format 00/00/0000 et 00-00-0000 lors de l'exportation alors que dans la colonne d'origine elles sont toutes en format 00-00-0000

je ne vois pas bien d'où vient le problème... merci d'avance

OLi
 

Pièces jointes

Bonsoir Thespeedy20,
Effectivement c'est bizarre, et sans raison apparente.
Une solution de contournement est de remettre le bon format :
VB:
    With Sheets("Feuil2").Range("A1").Resize(UBound(a, 1), UBound(a, 2))
        .Value = a
        .Columns("A:A").NumberFormat = "dd-mm-yyyy"
    End With
Ca n'explique pas mais ça résout. 🙂
 
Bonsoir sylvanu,

Merci pour ce contournement...

Je constate aussi que parfois, il y a une inversion (format américain), c'est de plus en plus bizarre. Ce n'est pas pour toutes les dates !!!

Exemple ligne 55 : 02-09-2012 sur feuille WO et après export 09-02-2012 sur le feuille2

OLi
 
Bonjour à tous

Je ne vois pas l'intérêt de passer par un array pour une simple copie.

Cette unique ligne suffit
VB:
Sheets("Wo").Range("A1").CurrentRegion.Copy Destination:=Sheets("Feuil2").Range("A1")

Sur la feuille 1 ce ne sont pas des dates mais des textes.
En utilisant value, Excel recalcule la valeur de la cellule et, quand il le peut, l’interprète comme date et comme on est en VBA, toute date est évaluée au format US.

Si à la main tu te places dans une cellule de la feuille 1 et revalide sont contenu sans le modifier, Excel va aussi transformer en date mais hors VBA, au format habituel.

Si tu tiens à ton array
VB:
Sub Recopie()
Dim a
    With Sheets("Wo").Range("A1").CurrentRegion
        a = Application.Index(.Value, Evaluate("row(1:" & _
            .Rows.Count & ")"), Array(1))
            For i = 2 To UBound(a)
                a(i, 1) = CDate(Replace(a(i, 1), "-", "/"))
            Next i
    End With
    With Sheets("Feuil2").Range("A1").Resize(UBound(a, 1), UBound(a, 2))
        .NumberFormat = "dd-mm-yyyy"
        .Value = a
    End With
End Sub
 
Dernière édition:
Bonjour sylvanu, chris

Je vous remercie de vous intéresser à mon problème... les dates sont extraites d'un logiciel tiers apparemment sous format texte, je vais contacter le concepteur afin qu'il règle le problème...

Merci à vous deux pour l'aboutissement ... de la résolution de ce problème

OLi
 
- 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
3
Affichages
115
Réponses
3
Affichages
887
Retour