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
 

camarchepas

XLDnaute Barbatruc
Re : Traitement de fichier

Bonjour,

Voici un premier fichier pour voir si l'extraction fonctionne correctement,

Si ton retour me confirme la chose , alors l'on regardera pour la mise en forme des infos en Csv:D
 

Pièces jointes

  • ExtraitTest1.xls
    35.5 KB · Affichages: 75

Djilow

XLDnaute Junior
Re : Traitement de fichier

Bonjour camarchepas
Tout d'abord merci de prendre le temps de regarder mon problème
Ensuite ton fichier me permet bien d'extraire les données dans une cellule
Donc je te confirme que l'extraction fonctionne correctement ^^
Peut-on s'attaquer à la mise en forme ???
 

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Bonjour,

regarde le code ci-dessous.
rentre le chemin et le nom du fichier (en gras rouge), et essaie...

Code:
Sub lireFichierTexte()
Dim Ligne As String
Dim Tblo(0 To 7)
Application.ScreenUpdating = False
[COLOR="Red"][B]Open "C:\Users\TonNom\Documents\Excel\import fich.txt"[/B][/COLOR] For Input As #1
Do While Not EOF(1)
    Line Input #1, Ligne
    If i = 0 Then
        Tblo(7) = Trim(Ligne)
    ElseIf i = 2 Then
        Tblo(1) = Trim(Left(Ligne, InStr(1, Ligne, ":ne") - 1))
    ElseIf Left(Ligne, 10) = "Board User" Then
        Tblo(0) = "/" & Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":")))
    ElseIf Left(Ligne, 14) = "Board Location" Then
        Tblo(2) = Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":")))
    ElseIf Left(Ligne, 10) = "Board Type" Then
        Tblo(3) = Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":")))
    ElseIf Left(Ligne, 9) = "Unit Part" Then
        Tblo(4) = Left(Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":"))), 10)
        Tblo(5) = Trim(Right(Ligne, 4))
    ElseIf Left(Ligne, 6) = "Serial" Then
        Tblo(6) = Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":")))
        [A65000].End(xlUp)(2) = Join(Tblo, ";")
    End If
i = i + 1
Loop
Close #1
Columns("A").AutoFit
End Sub

Peut-être.....
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Traitement de fichier

Bonjour Djilow et bhbh,

J'avais pas vu ta réponse Bhbh,

Voici donc la suite du traitement selon ma vision,
Vérifies si le Csv te conviens.
si ok , il faudra peut être voir pour traiter en masse car je pense que tu as plus d'un fichier à traiter ...
 

Pièces jointes

  • 2000_1.zip
    477 bytes · Affichages: 47
  • ExtraitTest2.xls
    44.5 KB · Affichages: 76
Dernière édition:

Djilow

XLDnaute Junior
Re : Traitement de fichier

Bonjour camarchepas
Dans ton fichier ExtraitTest2.xls il semble y avoir un petit soucis
Lorsque je l'exécute il trouve une erreur à cette ligne
Code:
Windows("ExtraitTest1.xls").Activate
J'ai remplacé par
Code:
Windows("ExtraitTest1.xls").Activate
Sa semble fonctionner. En revanche il me rajoute des espaces dans certaines cellule, saurais-tu pourquoi ?
Et puis comme tu l'a bien déduit il faudrait que le traitement puisse se faire en masse. En gros dans un dossier j'ai x fichiers .ri avec x nombre de ligne
En tout cas merci pour les réponses apportés et désolé pour le retard de mon coté :D
 

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Bonjour,

Je te propose de mettre ton fichier "2000_1.ri" dans le même répertoire que ton fichier Excel comportant la macro.

et tu modifies la ligne d'Open comme ceci :

Code:
Open ThisWorkbook.Path & "\2000_1.ri" For Input As #1

Pour voir...
 

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Re-,

Non, mon code n'enregistre rien....

Il ouvre en "virtuel" le fichier "2000_1.ri", lis les données, les traite, et copie selon tes souhaits les informations dans les cellules les unes en dessous des autres...

Est-ce que ton fichier comportant mon code est vide?

Je te propose de faire ceci :

Créé un nouveau classeur
Alt + F11 (tu es sous VBE), Insertion/Module, et colle mon code dans ce module

Déroule le code, et normalement, dans la Feuille 1 tu auras tes données...
 

Djilow

XLDnaute Junior
Re : Traitement de fichier

Je viens de faire comme tu me l'a conseillé et ton code renvoi bien mes données traitées et séparées par des ;
En rajoutant cette ligne j'enregistre ton traitement dans un fichier directement au format .csv :p
Code:
ActiveWorkbook.SaveAs Filename:="C:\test.csv", FileFormat:=xlCSV, CreateBackup:=False
Par contre serait-il possible que la macro fasse le traitement sur une multitude de fichiers ?
 

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Re-,

De la précision de la demande dépend la précision de la réponse....

Dans ta question initiale, tu commences ton fichier ainsi :

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

et ton fichier réel donne ceci :

uploadRemoteInventory started at 2010/07/01 06:17:19 on <MARSL_MANOSQUE_0001>
USER LABEL : MARSL_MANOSQUE_0001/r01sr1/board#01
LOCATION NAME :
ELEMENT IDENTIFICATION
ALCATEL company : AITA
Unit type : ESC
Unit part number : 3AL86661ABAA03
Software part number : 3AL95155AAAA02
CLEI code : WMUCA2JBAA
MANUFACTURING INFORMATION
Manufacturing plant : EZ
Serial number : EZ074533943
Date (00) : 07/12/05
OPERATOR INVENTORY DATA

Euh, on fait quoi?

Mon code était développé pour ta question initiale....
 

Djilow

XLDnaute Junior
Re : Traitement de fichier

Alors je suis désolé pour l'erreur que j'ai du faire lors du copier/coller initial
Tout mes fichiers .ri sont semblables à celui que je viens de mettre en pièce jointe dans le message précédent.
Par contre chaque fichier est plus ou moins long, ils ne sont pas tous identiques (ils ne répertorient pas tous le même nombre de données, certains équipements possèdent beaucoup de cartes tandis que d'autres en ont peu)
Désolé pour la perte de temps...
 

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Re-,

Ben, va falloir attendre un peu, maintenant.... ;)

Quand tu dis :

ls ne répertorient pas tous le même nombre de données

Tu parles des chapitres?

Mais ils ont tous ce même type de chapitre? (même nombre de lignes, mêmes début de lignes...)

USER LABEL : MARSL_MANOSQUE_0001/r01sr1/board#02
LOCATION NAME :
ELEMENT IDENTIFICATION
ALCATEL company : AITA
Unit type : OMDX8100
Unit part number : 3AL86615ABAE01
Software part number : --------------
CLEI code : WMD5H0LCAA
MANUFACTURING INFORMATION
Manufacturing plant : EZ
Serial number : EZ081932136
Date (00) : 08/05/15
OPERATOR INVENTORY DATA
 

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 111
dernier inscrit
Eric68350