format date change à l'importation d'une source txt.

shmider

XLDnaute Occasionnel
Bonjour le forum,
Bonjour les XlDiens :)

Je souhaiterai importer un fichier à priori (.txt) dans un fichier excel. ceci se fait à merveille sauf que le format des dates change de façon irréguliere et aliatoire que j'arrive pas à maitriser!

Je suis tombé sur cette macros et qui "à priori" peut résoudre ce problème. mais je n'arrive pas à l'adopter à mon fichier.

Code:
 Sub MFDate()
For Each X In Range("A1").CurrentRegion.Offset(1, 0).SpecialCells(xlCellTypeConstants, 2)
    X.Value = CDate(Format(Replace(X, "/", ""), "0/00/00"))
Next
End Sub

Pourriez vous s'il vous plait y jeter un petit coup d'oeil?

Note: je joint mon fichier de date à titre d'exmple. pourriez vous m'aider à adopter ce code à ce fichier? Merci beaucoup.

PS: j'ai bien parcourrue les forums et apparement ce code c'est le mieux que je trouve jusqu'à présent.


:p @+
 

Pièces jointes

  • source txt.xls
    15.6 KB · Affichages: 48
  • destination excel.xls
    103.5 KB · Affichages: 51
Dernière édition:

shmider

XLDnaute Occasionnel
Re : format date change à l'importation d'une source txt.

Re bonjour tout le monde,

J'ai trouvé ce code

Code:
date = Format$(date,"dd/mm/yyyy")

et j'essai de l'intégrer dans mon fichier précedent. Mais j'ai une erreur de droit d'admin je crois (si je ne me trempe pas) !!

voir capture d'ecran s'il vous plait. :)
 

Pièces jointes

  • msg erreur de permission.jpg
    msg erreur de permission.jpg
    43.7 KB · Affichages: 81

shmider

XLDnaute Occasionnel
Re : format date change à l'importation d'une source txt.

effectivement je viens de tester ceci en etant admin d un pc et ça fonctionne (sauf qu il y a une erreur). donc je dois éviter cette methode car les utilisateur de mon fichier ne sont pas en admin.

pourriez vous me dire si vous avez eu le temps de tester mes fichiers?

merci beaucoup.
 

MJ13

XLDnaute Barbatruc
Re : format date change à l'importation d'une source txt.

Bonjour Shmider.

Oui mais ton fichier .txt n'est pas un vrai txt.

Le mieux est d'utilser l'enregistreur de macro et d'ouvrir ton fichier .txt avec l'importation de fichier texte.

Il y a souvent des problèmes de date sur l'importation de fichier texte avec les dates type ex: 01/07 qu'il peut interprèter en 07/01.

On peut essayer de mettre ,local:=true à la fin du code VBA d'importation de fichier texte.
 

chris

XLDnaute Barbatruc
Re : format date change à l'importation d'une source txt.

Bonjour

J'ai remis l'extension txt.
Dans la fenêtre d'import, il faut préciser le format des colonnes dates pour indiquer le format JMA ou autre selon le cas afin qu'Excel ne décide pas lui-même.
 

shmider

XLDnaute Occasionnel
Re : format date change à l'importation d'une source txt.

Bonjour à vous,

Oui c'est ce que j'ai bien l'intention de faire, forcer un format de date. mais je n'y parviens pas.

Merci.


Bonjour

J'ai remis l'extension txt.
Dans la fenêtre d'import, il faut préciser le format des colonnes dates pour indiquer le format JMA ou autre selon le cas afin qu'Excel ne décide pas lui-même.
 

chris

XLDnaute Barbatruc
Re : format date change à l'importation d'une source txt.

Bonjour

Tu n'y arrives pas en manuel ou pour le faire en VBA ?
En manuel :
A l'étape 3 de l'import, il faut sélectionner les colonnes dans la partie basse (clic sur le titre) puis au dessus cocher date et préciser le format dans la déroulante.
Le bouton Avancé permet d'affiner si nécessaire.

Sinon reprécise ...
 

shmider

XLDnaute Occasionnel
Re : format date change à l'importation d'une source txt.

Ici on parle toujours du VBA en fait.

Je ne vois pas à quoi tu fais référence quand tu dis "etape 3" ?!

L'idéal c'est d'imposer un format à excel or si on est pas admin, on peut pas le faire.

Donc, je t'invite s'il te plait à voir mes fichier joints (cf. 1er post).

Ce que je cherche à faire c'est de pouvoir adopter le premier code publié dans le premier post.

Rappel:
Code:
Sub MFDate()
For Each X In Range("A1").CurrentRegion.Offset(1, 0).SpecialCells(xlCellTypeConstants, 2)
    X.Value = CDate(Format(Replace(X, "/", ""), "0/00/00"))
Next
End Sub

Merci pour ton aide.
Salut.
 

chris

XLDnaute Barbatruc
Re : format date change à l'importation d'une source txt.

Re

Je parlais de l'étape 3 de l'import manuel.

Une fois importé, il n'est pas certain que le VBA te remette les dates correctement.

C'est donc l'import qu'il faut faire en VBA : sur ton exemple
Code:
    Workbooks.OpenText Filename:="D:\docs\tempo\source.txt", Origin _
        :=xlWindows, StartRow:=16, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 4), Array(7, 4), Array(8, 1))
où Array(6, 4), Array(7,4) signifie que les 6ème et 7ème colonnes contiennent des dates au format JMA (jour, mois, année)
 

shmider

XLDnaute Occasionnel
Re : format date change à l'importation d'une source txt.

re à toi,

chez moi tout ce fais en macros ! je n'ai pas de manip manuelles!

actuellement je cherche à adopter le code
Sub MFDate()
For Each X In Range("A1").CurrentRegion.Offset(1, 0).SpecialCells(xlCellTypeConstants, 2)
X.Value = CDate(Format(Replace(X, "/", ""), "0/00/00"))
Next

à mon fichier. Peux tu m'aider la dessus. vois pièce jointe.
End Sub
 

Pièces jointes

  • date.xls
    32.5 KB · Affichages: 48
  • date.xls
    32.5 KB · Affichages: 50
  • date.xls
    32.5 KB · Affichages: 50

chris

XLDnaute Barbatruc
Re : format date change à l'importation d'une source txt.

Re

J'ai déjà eu à traiter ce genre de PB.

Je t'ai donné le VBA qui permet d'importer correctement.

Essayer de retrouver la bonne date après les avoir importées de travers n'est pas la bonne méthode.

Mais si tu préfères néanmoins cette voie, je laisse le soin à d'autres de poursuivre le fil.
 

shmider

XLDnaute Occasionnel
Re : format date change à l'importation d'une source txt.

re bonjour à toi,

Lorsque j'ai copier et coller cette macro dans le VBE du fichier destinataire elle ne marchait pas! et ce que tu l'as adaptée à ce ficheir? ou il faut que je le fasse?

Merci à toi.


Re

J'ai déjà eu à traiter ce genre de PB.

Je t'ai donné le VBA qui permet d'importer correctement.

Essayer de retrouver la bonne date après les avoir importées de travers n'est pas la bonne méthode.

Mais si tu préfères néanmoins cette voie, je laisse le soin à d'autres de poursuivre le fil.
 

chris

XLDnaute Barbatruc
Re : format date change à l'importation d'une source txt.

Re

En fait les dates bonnes et les dates fausses ne sont pas celles que tu indiques mais le contraire. L'écart variance dans la troisième colonne le confirme.

Ton fichier texte ne doit pas avoir une extension xls mais txt.

Le code :
Code:
Sub importer_QuandClic()
Dim ouvrir As String
Dim destinataire As Workbook

Set destinataire = ThisWorkbook
ouvrir = Application.GetOpenFilename("Text Files (*.txt), *.txt", Title:="import de données", MultiSelect:=False)
If VarType(chercher) = vbBoolean Then MsgBox "Insersion annulée !": Exit Sub

Workbooks.OpenText Filename:=ouvrir, Origin _
        :=xlWindows, StartRow:=16, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 4), Array(7, 4), Array(8, 1))

ActiveWorkbook.Sheets(1).UsedRange.Rows.Copy Destination:=destinataire.Sheets(2).Range("A17")

ActiveWorkbook.Close

End Sub
 

shmider

XLDnaute Occasionnel
Re : format date change à l'importation d'une source txt.

Bonjour,

Effectivement c'est ce que j'ai fini par mettre en place hier comme code exactement la meme idée ;) sauf que pour l'ouverture j'ai laissé l'extension .xls et ça marche nikel.

En tous cas merci et mille merci pour tes efforts.

@+
 

Statistiques des forums

Discussions
313 126
Messages
2 095 513
Membres
106 277
dernier inscrit
massoudi