Traitement de fichier

  • Initiateur de la discussion Initiateur de la discussion Djilow
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Djilow

Guest
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
 
Re : Traitement de fichier

Re-,

il ressort rien du tout

Grrrrrrrr!!!!!

Quand tu fais pas à pas, du moins pour le premier fichier (tu auras un certain nombre de F8 à faire, jusqu'à la ligne :

Code:
[A65000].End(xlUp)(2) = Join(Tblo, ";")

et en plaçant ta souris, à chaque ligne, sur Tblo(1), Tblo(7)...., que se passe-t-il?

Il faut que la ligne ne soit plus en "surligné" jaune, pour voir l'info-bulle...
 
Re : Traitement de fichier

En remettant la ligne d'affichage du nom de fichier
Il ressort le nom de chacun des fichiers mais c'est tout...
Et pour la date on ne récupère pas ce qu'il faut moi je veux la date de la carte pas la date du fichier

En mode pas à pas la boucle ne semble tourner qu'une fois dans le fichier et passer au suivant ...
 
Dernière modification par un modérateur:
Re : Traitement de fichier

Je viens de me rendre compte que le fichier n'est pas importé de la même façon sur mon PC suivant si je les importent avec Filezilla ou avec un script batch.
Avec Filezilla les fichiers sont ramenés sans retour à la ligne.
Tandis qu'avec mon script les fichiers possèdent bien les sauts de lignes ce qui permet ton traitement.
Merci beaucoup
 
Re : Traitement de fichier

bonsoir,

J'ai essayé de modifier le code, concernant la date, mais je ne sais pas sous quel format elle se trouve....

tu mets "07/12/05", mais dans certaines lignes, la date est de "07/11/29"

Tu me confirmes, qu'on parle bien de l'année 2029?

@ te relire....
 
Re : Traitement de fichier

Bonsoir
Euh non la date est en format Anglais donc 07/11/29 signifie en qu'en Français la date est 29/11/2007
Après peut importe le format de la date Anglais ou Français me conviendra parfaitement 😀

Merci à toi
 
Re : Traitement de fichier

Re-,

le code, j'espère, final : 😎

Code:
Sub lireFichier_ri()
Dim Ligne As String
Dim LePath As String, LaDate As String
Dim Fich As String, X As String
Dim Flag As Boolean
Dim Tblo(0 To 7)
Application.ScreenUpdating = False
Columns(1).Clear
LePath = ThisWorkbook.Path & "\"
Fich = Dir(LePath & "*.ri")
X = LePath & Fich
Do While Fich <> ""
    Open X For Input As #1
        Do While Not EOF(1)
            Line Input #1, Ligne
                If Not Flag Then
                    Tblo(1) = Mid(Ligne, InStr(1, Ligne, "<") + 1, InStr(1, Ligne, ">") - InStr(1, Ligne, "<") - 1)
                    Flag = True
                ElseIf Trim(Ligne) Like "USER LABEL*" Then
                    Tblo(0) = "/" & Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, "/")))
                ElseIf Trim(Ligne) Like "LOCATION NAME*" Then
                    Tblo(2) = Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":")))
                ElseIf Trim(Ligne) Like "Unit type*" Then
                    Tblo(3) = Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":")))
                ElseIf Trim(Ligne) Like "Unit part number*" Then
                    If Mid(Ligne, InStr(1, Ligne, ":") + 2, 3) = "3AL" Or _
                            Mid(Ligne, InStr(1, Ligne, ":") + 2, 3) = "3AL" Then
                        Tblo(4) = Left(Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":"))), 10)
                        Tblo(5) = Trim(Right(Ligne, 4))
                    Else
                        Tblo(4) = Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":")))
                        Tblo(5) = ""
                    End If
                ElseIf Trim(Ligne) Like "Serial number*" Then
                    Tblo(6) = Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":")))
                ElseIf Trim(Ligne) Like "Date*" Then
                    LaDate = Right(Ligne, 8)
                    Tblo(7) = CDate(Right(LaDate, 2) & "/" & Mid(LaDate, 4, 2) & "/" & Left(LaDate, 2))
                    [A65000].End(xlUp)(2) = Join(Tblo, ";")
                End If
        Loop
    Close #1
    Fich = Dir
    Flag = False
Loop
Columns("A").AutoFit
Rows(1).Delete
Sheets(1).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=LePath & "carte.csv", FileFormat:=xlCSV
ActiveWorkbook.Close
End Sub

Nota : je supprime la 1ère ligne (qui est vide), je copie la feuille, et je l'enregistre en carte.csv, comme cela ton fichier excel reste tel quel....

PS, tu n'oublies pas de me donner le temps de traitement de tes 943 fichiers.... 😉
 
Re : Traitement de fichier

Petite question: Pourquoi as ton dans notre classeur une copie des données faites lors de l'éxécution de la macro ? Si j'enregistre mon fichier où se trouve ma macro sa taille va grossir considérablement
Peut-on faire en sorte de ne pas modifier le fichier ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour