Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Traitement de fichier

Djilow

XLDnaute Junior
Bonjour
Étant novice dans les macro je viens vous demander de l'aide
J'ai un fichier 2000_1.ri contenant des infos de ce style
J'aimerais créer une macro me permettant de traiter ce fichier et de le mettre au format .csv sous la forme suivante
Code:
/r01sr1/board#01;S:SAVINESSV5_001;;ESC;3AL86661AC;AA02;YP1002085E5;Fri Jul  2 11:09:11 2010
/r01sr1/board#03;S:SAVINESSV5_001;;OMDX8100_M_L1_XS_NOSPV;3AL86615AA;AF01;YP1008071D9;Fri Jul  2 11:09:11 2010
Quelqu'un aurait il une idée à me proposer sachant que mon fichier comporte x ligne
Merci d'avance
 

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Ok,

j'avais voulu mettre la date "française", on va garder la date "anglaise"

Peut-être un fichier "pas comme les autres", au niveau de la date...

modifie les lignes comme ceci :

Code:
                ElseIf Trim(Ligne) Like "Date*" Then
                    Tblo(7) = Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":") - 1))
                    [A65000].End(xlUp)(2) = Join(Tblo, ";")
                End If
 

Djilow

XLDnaute Junior
Re : Traitement de fichier

Alors petite info qui n'est pas cool ...
Ton code fonctionne bien
Le problème vient d'un fichier remonté dans lequel les données sont erronées, je m'explique
Voici le chapitre où se trouve l'erreur
Est-il possible de parer ce genre de défaut ?

Edit: Dans plus d'un fichier on retrouve ce beug...
Serait-il possible de récupérer la date tel quel sans faire de modification ?
Cela simplifierais le boulot et de toute faaçon ce n'est pas une donnée très importante
 
Dernière édition:

Djilow

XLDnaute Junior
Re : Traitement de fichier

Je viens de m'apercevoir que si j'ouvre le fichier avec un bon vieux notepad++ ma date est bien sous la forme 10/02/16
Il semblerais que l'ami Excel mettent en place par défaut un format date
 

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Re-,

mon dernier code le fait, non?

Code:
               ElseIf Trim(Ligne) Like "Date*" Then
                    Tblo(7) = Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":") - 1))
                    [A65000].End(xlUp)(2) = Join(Tblo, ";")
                End If

sinon, en supposant que c'est toujours le même type d'erreur, essaie ainsi ;

Code:
                ElseIf Trim(Ligne) Like "Date*" Then
                    LaDate = Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":") - 1))
                    If Not IsNumeric(Mid(LaDate, 4, 1)) Then Mid(LaDate, 4, 1) = 0
                    If Not IsNumeric(Mid(LaDate, 8, 1)) Then Mid(LaDate, 8, 1) = 0
                    Tblo(7) = CDate(Right(LaDate, 2) & "/" & Mid(LaDate, 4, 2) & "/" & Left(LaDate, 2))
                    [A65000].End(xlUp)(2) = Join(Tblo, ";")
                End If
 

Djilow

XLDnaute Junior
Re : Traitement de fichier

Merci bhbh cette fois on est arrivé à destination
Merci pour ta patience, ton aide, et le temps passé à résoudre mon problème
Cette fois-ci ta macro fait totalement ce que je voulais faire
Encore un grand merci à toi
A bientôt

Edit:Le temps d'exécution pour 950fichiers est 6,484375
 
Dernière édition:

Djilow

XLDnaute Junior
Re : Traitement de fichier

je viens de voir un truc dans la modification que tu avais faites hier

Code:
If Mid(Ligne, InStr(1, Ligne, ":") + 2, 3) = "3AL" Or _
                            Mid(Ligne, InStr(1, Ligne, ":") + 2, 3) = "3AL" Then
Est-ce normal que l'on est deux fois "3AL" ne devrait on pas avoir une fois un "8DG"
Pourrais-tu m'explique le fonctionnement de la ligne ??
 

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Bonjour,

En ce 14 juillet, étant de défilé, ce matin, je me suis dit, "Il n'a pas eu le temps de le voir...."

Effectivement, à un moment donné, après nos 600 000 échanges, et bien plus de corrections, j'ai vu ce "Ctrl + C, Ctrl +m", synonyme de "Copier/Merder".....

J'ai modifié, dans ma réponse, mais tu avais saisi avant ma modif.....(cf #33)(ce fil est le #70)

So, désolé, c'était une erreur de ma part.....

(Euh, maintenant, que je t'ai fait gagné un mois de vacance, tu vas pas non plus t'en plaindre..........^)

Et je m'excuse d'autant plus, c'est que j'ai persisté....

Dans les codes que je t'ai fourni, j'avais "omis", de le rectifier....

Effectivement, tu le remplaces, le "3AL", par "8DG"........(dans la 2ème ligne)

Désolé de t'avoir fait perdre du temps.....
 
Dernière édition:

Djilow

XLDnaute Junior
Re : Traitement de fichier

Tu n'as pas a être désolé ^^
C'est plutôt moi qui devrait m'excuser de t'avoir fait passer autant de temps pour subvenir à mon besoin.
En tout cas merci ta macro me permet vraiment de gagner un temps considérable.
Bonne continuation à toi et à une prochaine peut-être
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…