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

Re-,

Peux-tu essayer avec les fichiers que je joins?

Tu créés un nouveau dossier, et tu les dézippes dans ce dossier, puis tu lances la macro, en appuyant sur le bouton "GO"

Pour voir....
 

Pièces jointes

  • Ri.zip
    11.3 KB · Affichages: 34
  • Ri.zip
    11.3 KB · Affichages: 35
  • Ri.zip
    11.3 KB · Affichages: 35

Djilow

XLDnaute Junior
Re : Traitement de fichier

Il me sort la même erreur ...
De quoi cela peut-il venir ?

Alors j'ai encore une mauvaise blague...
Dans certains de mes fichiers il y a des cartes commençant par 8DG
Pour ces cartes il faudrait faire la même manipulation que sur les 3AL c'est à dire récupérer les 10 premiers caractères dans une cellule et les 4 autres dans la suivante

J'ai rajouté cela pour traiter mon problème
Code:
ElseIf Mid(Ligne, InStr(1, Ligne, ":") + 2, 3) = "8DG" Then
                        Tblo(4) = Left(Trim(Right(Ligne, Len(Ligne) - InStr(1, Ligne, ":"))), 10)
                        Tblo(5) = Trim(Right(Ligne, 4))
Est-ce correct ?
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Re-,

Bizarre, bizarre....

Si quelqu'un du forum pouvait essayer le code, avec les fichiers joints dans mon précédent post, je lui en saurai gré...

Pour les "8DG", pas de soucis, remplace la ligne :

Code:
If Mid(Ligne, InStr(1, Ligne, ":") + 2, 3) = "3AL" Then

par celle-ci :

Code:
If Mid(Ligne, InStr(1, Ligne, ":") + 2, 3) = "3AL" Or _
                            Mid(Ligne, InStr(1, Ligne, ":") + 2, 3) = "8DG" Then

Euh, tu as quelle version d'Excel?

Edit, je viens de lire ta correction, c'est également correct, mais tu rajoutes 3 lignes, alors que moi, j'en rajoute aucune (à part le retour à la ligne.....)
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Re-,

Lorsque tu es dans l'éditeur VBE, peux-tu me donner les références cochées?

Tu cliques sur "Outils/Références", et tu me donnes la liste des références cochées...

Pour voir.....

J'ai essayé en 2003 et 2007, pas de soucis....

A titre d'infos, j'ai 4 références de cochées :

- Visual Basic for Application
- Microsoft Excel 12.0 Object Library (12 pour 2007, 11 pour 2003)
- OLE Automation
- Microsoft Office 12.0 Object Library (idem)

S'il t'en manque, cherches-les dans la liste, coche la case, et fais "OK"

Pour voir....
 

Djilow

XLDnaute Junior
Re : Traitement de fichier

Euh j'ai la même chose hormis le fait que la version des librairies est en 11.0 sur 2003
Et 12.0 sur le 2007
C'est quand même bizarre que tout fonctionne de ton côté et pas du mien ...
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Re-,

On va essayer autre chose....(après, je risque d'être à court d'idées.....)

Sur un fichier "*.ri", lorsque tu fais un clic droit dessus, et que tu fais :

"Ouvrir avec....", que te propose-t-il par défaut?

Pour ma part, c'est le Bloc Note...

Si ce n'est pas le cas chez toi, choisis le bloc note par défaut, fais le test, et si cela fonctionne, à la fin du traitement, tu peux reprendre ton logiciel par défaut...

Mais, ceci, vraiment à tout hasard....(je n'y crois pas trop.....)

Euh, quelles versions de Windows? (moi, c'est Vista)
 

Djilow

XLDnaute Junior
Re : Traitement de fichier

Je viens de faire un test il se trouve que si je met dans la variable Fich le chemin d'accès complet pour accéder au fichier, par exemple
Fich = "C:\Documents and Settings\TOTO\Desktop\TEST\2100_1.ri"
Le code fonctionne correctement ...
Alors le problème ne se situerais pas au niveau du path ??
 

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Re-,

rajoute cette ligne (en rouge), sous la ligne :

Code:
Fich = Dir(LePath & "*.ri")
[COLOR="Red"]MsgBox LePath & Fich[/COLOR]

et vérifie que le chemin et le nom de fichier sont corrects
 

Djilow

XLDnaute Junior
Re : Traitement de fichier

Les noms sont corrects
Je viens de modifier ton code et là il fonctionne correctement

Cette fois-ci cela fonctionne correctement en revanche serait-il possible d'enlever la ligne avec le nom des fichiers (exemple 2100_1.ri, 2100_2.ri et toutes les suivantes)
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Re-,

Bizarre autant qu'étrange, mais le principal, c'est que cela fonctionne....

Pour le nom des fichiers, j'avais mis pour le fun, supprime la ligne :

Code:
[A65000].End(xlUp)(2) = Fich

Juste en dessous de "Open...."

Nota 1 : pour poster du code, utilise plutôt la balise notée #

Nota 2 : Dis-moi si cela a fonctionné avec tous tes fichiers, et si cela n'a pas été trop longtemps...

Combien de fichiers?
Pour mesurer le temps, rajoute ces 3 lignes (en rouge) :

Code:
Dim Tblo(0 To 7)
[COLOR="Red"]Dim T
T = Timer[/COLOR]
Application.ScreenUpdating = False
....
....
Columns("A").AutoFit
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\GZSF1202\Desktop\POPO\test.csv", FileFormat:=xlCSV, CreateBackup:=False
[COLOR="Red"]MsgBox Timer - T[/COLOR]
End Sub
 

Cousinhub

XLDnaute Barbatruc
Re : Traitement de fichier

Re-,

modifie juste la "presque" dernière ligne :

Code:
ActiveWorkbook.SaveAs Filename:=LePath & "carte.csv", FileFormat:=xlCSV

On y arrive, on y arrive....(Pfiou, déjà 00H30, debout à 05H30, je donnerai ton nom à mon chef..... )
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…