Importation date d'un fichier CSV

Bonjour,

Je but sur un problème depuis trop longtemps.

Apres importation d'un fichier .csv dans un fichier excel par VBA, les dates arrivent sous le format "21.10.1987 10:03:15"

Dès que je clique dans la case du fichier excel et que j'en ressort sans rien modifier, un deuxième espace vient s'introduire entre la date et l'heure soit

"21.10.1987 10:03:15"

Mon problème est le suivant... quand j'importe de nouvelles dates d'un nouveau fichier, la formule de "equiv" ne fonctionne pas puisque il y a cette différence d'espace.

Comment puis-je faire pour ajouter par VBA se deuxième espace lors de l'importation dans le fichier excel qui me faciliterait grandement mes recherche.

Je vous remercie

Vincent

Bonjour,

Je pense que tout d'abord, tu devrais placer un modèle de fichier CSV avec le module VBA que tu utilises pour le rendre utilisable

et la magie des réponses interviendra plus rapidement

Bonjour M12

Oui en effet, cela serait bien. Par le biais de l'onglet "Enregistrement, on peut importer des fichiers CSV tel que en ataché.

sous détails de production, plusieurs dates s'affichent don certaine en rouge, Cela signifie qu'elle existe déjà dans l'onglet "Arrêt", se qui jusque là est tout a fait voulu.

C'est seulement une fois que je clique dans l'une des cellules (B22:B27) que ça se complique. Comme dit dans mon premier message, c'est le format de la date qui change et après il n'y a plus d’équivalence entre la date qui se trouve dans "Enregistrement" et celle qui se trouve dans "Arrêt",

J'ai essayé d’être au plus claire, je sais que pas tout ne fonctionne au top dans le fichier mais comme c'est un fichier de mon entreprise, j'ai pas pu tout divulguer

D'avance merci

33copie-de-ctms-v2.xlsm (431.97 Ko)

Bonjour,

Le problème vient que tes dates en B23 - B27 ne sont pas des dates

elles sont séparées par des "." et non des "/" ou "-"

d'où le soucis

Il faudrait que l'importation du fichier CSV remplace les points par un slash ("/")

Bonjour

voila une macro pour convertir les dates

Private Sub ChoixFic()
Dim dossier As FileDialog
ChoixChemin = ActiveWorkbook.Path & Application.PathSeparator
   Set dossier = Application.FileDialog(msoFileDialogFilePicker)
      With dossier
         .AllowMultiSelect = False
         .InitialFileName = ChoixChemin
         .Title = "Choix d'un fichier TXT"
         .Filters.Clear
         .Filters.Add "Fichier Txt ", "*.csv", 1
            If .Show = -1 Then
               Chemin = .SelectedItems(1)
               LireCsv Chemin
            End If
      End With
   Set dossier = Nothing
End Sub

Sub LireCsv(NomFichier)
Dim Ar() As String
   With Application
      .ScreenUpdating = False
      .EnableEvents = False
      .Calculation = xlManual
   End With
Rows("1:" & Rows.Count).ClearContents
Sep = ";"
Lig = 1
' -----------------------------------------
'On Error Resume Next
   Open NomFichier For Input As #1
        Do While Not EOF(1)
            Line Input #1, Chaine
               Ar = Split(Chaine, Sep)
               Col = 1
               On Error Resume Next
                  For X = LBound(Ar) To UBound(Ar)
                     If Col = 1 Then
                           Cells(Lig, Col).Value = Replace(Ar(X), ".", "/")
                        Else
                           Cells(Lig, Col).Value = CStr(Ar(X))
                     End If
                     Col = Col + 1
                  Next
            Lig = Lig + 1
        Loop
    Close #1
' -----------------------------------------
   With Application
      .ScreenUpdating = True
      .Calculation = xlCalculationAutomatic
      .EnableEvents = True
      .CutCopyMode = False
      .Goto [A1], True
   End With
End Sub

A+

Maurice

Le problème c'est que ces donnée me sont envoyé d'une machine don je ne peux modifier l'exportation des données... je suis obligé de faire avec ce fichier tel quel.


Car si je prend la formule =Maintenant(), ça me donne un format avec des point 12.06.2017 11:21:17 avec justement ces deux espaces entre la date et l'heure.

bonjour

je doit pas comprendre ton problème mes bon retour de ton fichier modifier voir le bouton import CSV dans onglet Import

A+

Maurice

41copie-de-ctms-v3.xlsm (425.89 Ko)

Merci Maurice

Alors oui, c'est exactement se que je voulait a un détail près.

En annexe j'ai mis un fichier .csv mais en fait j'en ai 3, et le code que j'avais avant allait chercher automatiquement les valeurs dans les 3 fichier qui se trouve au chemin indiqué dans la macro...

J'ai tenté de prendre ton code et de l'implanter dans le mien mais sans succès.

Vincent Johner a écrit :

Apres importation d'un fichier .csv dans un fichier excel par VBA, les dates arrivent sous le format "21.10.1987 10:03:15"

Dès que je clique dans la case du fichier excel et que j'en ressort sans rien modifier, un deuxième espace vient s'introduire entre la date et l'heure soit

"21.10.1987 10:03:15"

Mon problème est le suivant... quand j'importe de nouvelles dates d'un nouveau fichier, la formule de "equiv" ne fonctionne pas puisque il y a cette différence d'espace.

Vincent Johner a écrit :

Le problème c'est que ces donnée me sont envoyé d'une machine don je ne peux modifier l'exportation des données... je suis obligé de faire avec ce fichier tel quel.

Bonjour,

Il faut savoir que la plupart des logiciels sortent les dates en texte, avec souvent un espace avant et/ou après. Et c'est très bien !! Cela évite à excel de les interpréter n'importe comment. La main revient donc à l'utilisateur de les transformer, la meilleure solution est soit CNUM(_____) soit SUBSTITUE(___________).

Il faut donc que tu gardes la main en ajoutant une colonne que tu maîtrisera sinon un jour ce sera la Bérézina !

Je vous remercie tous pour votre aide!!!!!,J'ai réussi à réaliser se que je voulais faire.

Encore une fois merci

Rechercher des sujets similaires à "importation date fichier csv"