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
Fri Jul 2 11:09:11 2010
- Page: 1
S:SAVINESSV5_001:ne1696MS 3.0 Remote Inventory

Board User Label :r01sr1/board#01
Board Location :
Board Type : ESC
ALCATEL Company : ASHB
CLEI Code : WMUCA2KBAA
Unit Part Number : 3AL86661ACAA02
Software Part Number: 3AL95155AAAA02
Serial Number : YP1002085E5
Unit Type : ESC
Factory Identifier : YP
Date Identifier : 00 - Date of final test
Date : 10/02/24
Operator Data : --------------------------------
------------------------------------------------------------------------------

Board User Label :r01sr1/board#03
Board Location :
Board Type : OMDX8100_M_L1_XS_NOSPV
ALCATEL Company : ASHB
CLEI Code : WMD5H0KCAA
Unit Part Number : 3AL86615AAAF01
Software Part Number: --------------
Serial Number : YP1008071D9
Unit Type : OMDX8100
Factory Identifier : YP
Date Identifier : 00 - Date of final test
Date : 10/02/28
Operator Data : --------------------------------
------------------------------------------------------------------------------
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
 

Djilow

XLDnaute Junior
Re : Traitement de fichier

Excel est pas content
Y me dit
Erreur d'exécution '13':
Incompatibilité de type
Et en mode pas à pas sa correspond à la ligne
Tblo(7) = CDate(Right(LaDate, 2) & "/" & Mid(LaDate, 4, 2) & "/" & Left(LaDate, 2))

Edit: de plus l'erreur n'intervient pas sur la lecture du premier fichier mais sur un autre
 
Dernière édition:

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
USER LABEL : MONTIE:DMED3_0001/r01sr1/board#23
LOCATION NAME :
ELEMENT IDENTIFICATION
ALCATEL company : ASHB
Unit type : SPVM+OW
Unit part number : 3AL86606ABAG02
Software part number : SNOSSA2.0
CLEI code : WM2C1Y7KAA
MANUFACTURING INFORMATION
Manufacturing plant : YP
Serial number : YP100404D1F
Date (00) : 10//2/2/
OPERATOR INVENTORY DATA
----------------------------------------------
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:

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 :cool:

Edit:Le temps d'exécution pour 950fichiers est 6,484375 :D
 
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 ;)
 

Statistiques des forums

Discussions
312 198
Messages
2 086 145
Membres
103 130
dernier inscrit
FRCRUNGR