XLR -> XLS, et wks -> xls , traitement par lot

Alors, les fichiers a traiter sur sur un PC en réseau que j'appelle "post serveur".

Pour le traitement des fichiers en question, je peux les déplacer sur mon PC, dans un dossier que j'airais créé à cette occasion. Le dossier sera dans C (sur mon PC)et je l'appellerai "Copie XLR"

Donc dans copie XLR, il y aura

1 dossier "Devis 2005", contenant les dossiers suivants : janvier 2005, fevrier 2005, mars 2005, avril 2005, mai 2005, juin 2005, juillet 2005, septembre 2005, octobre 2005,novembre 2005, décembre 2005; chacun de ces sous-dossiers contient 30 à 80 fichiers, appelés "tartempion.xlr", "bidule.xlr", "nom-du-client.xlr"

+1 dossier Devis 2006, contrenant .... janvier 2006, fevrier 2006 etc etc, chacun contenant des fichiers de devis clients du genre "nom-du-client.xlr"

+ 1 dossier Devis 2007 ...idem

+ 1 dossier Devis 2008...idem (contenant des fichiers xlr et quelques xls)

+ 1 dossier Devis 2009 .... + 1 devis 2010 .... + 1 devis 2011 .... + 1 devis 2012 .... + 1 devis 2013 .... + 1 devis 2014 .... + 1 devis 2015 .... + 1 devis 2016....

Il y a aussi un dossier "devis facture avant 01.01.2005" contenant 1 sous-dossier "devis" et 1 sous dossier "factures"; Dans chacun de ces sous-dossiers, il y a des sous-sous-dossiers qui correspondent aux années pour des sous-sous-sous-sous-dossiers qui correspondent aux mois !!

Mais après je peux aussi traiter chaque dossier genre " devis année" un par un si ça t'aide.

Bonjour,

Les noms des dossiers ne devraient pas avoir trop d'importance ... c'est plutôt la structure où il faudra naviguer par boucle qu'il faut en avoir une bonne idée.

Par contre ... tu ne m'as pas dit où tu aimerais enregistrer les fichiers convertis.

Dans les mêmes dossiers ?

Si tu comptes opérer les conversions sur des copies (ce qui est prudent) ... est-ce que tu préfèrerais qu'on efface les anciens (.xlr) au fur et à mesure ? Avec un décompte dans le fichier des macros ?

ric

Oui, je le ferais sur une copie des fichiers, en supprimant les fichiers d'origine au fur et à mesure.

Je vérifierais ensuite quelques fichiers par rapport aux anciens fichier d'origine sur le post serveur.

Bonjour,

Good, je te tricote quelque chose, un foulard peut-être et te reviens bientôt.

Le cas .xlr est donc en bonne voie d'être réglé.

Le cas .wks est moins jojo > il faut coder sous OpenOffice > c'est une autre pair de manches.

ric

Bonjour,

Voici la partie .xlr.

Le bouton d'appel du traitement est dans la Feuil1 > une image indique une référence dans VBE à ajouter ... si elle n'est pas déjà là.

Dans la Feuil2 > j'ai laissé la structure du traitement afin de voir à quoi cela peut ressembler > c'est ce que j'ai testé. C'est toujours ton fichier que j'ai recopier plusieurs fois ...

Si tu cliques sur le bouton "Lancer la conversion......" de la Feuil1 > une fenêtre va te demander de choisir à partir de quel dossier débuter > le traitement se fera dans ce dossier et tous les sous-dossiers.

Seuls les fichiers .xlr seront listés et traités.

Tu as mentionné quelques milliers de fichiers à traiter > tu vas devoir dédier un ordinateur à cette tâche > car, étant donné que le code doit ouvrir à tour de rôle les fichiers pour les convertir > le traitement pourrait prendre quelques heures > je suggère fortement de désactiver la mise en veille et la mise en veille prolongée > ainsi que de tester sur un petit lot avant le grand lancement.

En résumé > on choisit le dossier > le code liste les dossiers et fichiers .xlr dans la Feuil2 > puis, ouvre un fichier > l'enregistre sous le nouveau format avec la nouvelle extension .xlsx > le ferme et supprimer le .xlr de départ.

Autre point > dans VBE > Feuil1 > il y a l'appel successif des deux traitements >

Call Module2.SelDossierRacine > liste les dossiers et fichiers dans la Feuil2 > si tu relances cette macro > la Feuil2 est effacée et le nouveau listing s'inscrit.

Call Module1.Traitements > lance le traitement en lisant les infos dans la Feuil2 > puis marque "OK Fait" en colonne B si le fichier a été traité.

Si le traitement est interrompu pour une raison quelconque > n'exécute que Module1.Traitements > les fichiers dont la colonne B contient "OK Fait" seront outrepassé lors du traitement > beaucoup de temps sauvé.

Si j'ai bien suivi dans mes recherches > le code du module 2 et l'ossature de la macro du module 1 seraient l’œuvre de kiki29 > forumeur de chez développez > remercions-le en passant.

Pour l'autre module > .wks > ça va être un peu plus long > à moins de trouver un expert de macro Open Office (en passant OpenOffice semble mieux traiter la conversion des .wks en .xlsx que LibreOffice, d'où mon choix).

Amuse-toi bien ...

ric

Merci, je vais regarder cela, et faire un test sur un petit groupe de dossiers. Je te tiens au courant.

Waouuu, je suis impressionné ! Cela fonctionne très bien pour les fichiers XLR. Un grand merci pour cela.

Juste un truc qui pose problème : quand le programme rencontre un fichier autre que xlr , il s'arrête et renvoie un message d'erreur.

Il faudrait pouvoir "ignorer" ces fichiers "non xlr" ( j'ai dans certains sous-dossiers des fichiers .pub ou des fichiers .xls , .pdf etc et cela bloque dessus)

Edit : Je viens de faire toute l'année 2015 pour les devis. Je le fais mois après mois en ouvrant chaque mois, couper/coller les fichiers autres que xlr ailleurs, je fais la concersion et je remet les fichiers autres dans le mois concerné. Cela va assez vite finalement, mais si le programme pouvait le faire tout seul, ce serait super top , je pourrais lancer tout

Bonjour,

Ouupppssss!!!!! > Cela m'explique un bogue que j'ai eu.

La recherche et lecture des fichiers pour les inscrire dans la Feuil2 avaient cessé de fonctionner pour les sous-dossiers.

En désespoir de cause, j'avais repris le code d'origine et y ais appliqué mes petites corrections.

J'en ai oublié une et c'était celle-là.

Si je demande de lire la recherche et lecture des fichiers seulement sur les .xlr > le code ne fait pas les sous dossiers.

Mais voici comment contourner ..

Dans le module1, change ces 2 lignes marquées " <<< Changement ICI."

      With Fs.Worksheets("Feuil2")
      For x = 6 To Dlig
         If .Cells(x, "B") = "OK Fait" Or Right(.Cells(x, "D"), 3) <> "xlr" Then    ' <<< Changement ICI.
            If Right(.Cells(x, "D"), 3) <> "xlr" Then .Cells(x, "B") = "OK passer"  '<<< Changement ICI.
         Else

Les tous les fichiers seront listés > mais seulement les fichiers .xlr seront traités et il n'y a pas d'arrêt jusqu'à la fin.

ric

ric a écrit :

seulement les fichiers .xlr seront traités et il n'y a pas d'arrêt jusqu'à la fin.

ah ? c'est plus un programme omnibus, alors ? mince, j'voulais descendre avant l'terminus, moi !

dhany

Désolé dhany > c'est le rapide > tu retourneras à pied.

ric

oui, c'est toujours mieux d'éviter d'prendre le mauvais code VBA !

dhany

Super, ça marche nickel !

J'ai lancé mon dossier Devis 2014 (654 fichiers dans 11 sous dossiers) et je suis parti manger. Au retour tout était OK, les fichiers autres que .xlr sont passés sans être traité, et aucun message d'erreur.

C'est génial, merci beaucoup.

Reste plus qu'a essayer l'indexation du contenu avec Windows Search sur ces fichiers.

.... les fichiers wks, bien sur

Bonjour,

Bien heureux que ça fonctionne correctement.

Je n'en suis que l'assembleur de bouts de code trouvés ici et là pour faire un bazou ... https://www.google.ca/search?q=hot+rod&hl=fr&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiux53JzaHeAhUDm-AKHXoSDN0Q_AUIDigB&biw=1280&bih=611#imgrc=_ ...qui va au terminus sans arrêt > même si dhany veut en descendre avant.

J'espère que dhany en revenant à pied ne m'en veut pas trop ... moi qui suit un ... et qu'il aura eu le temps de cogiter comment composer un code équivalent sur Calc de OpenOffice.

ric

oui, ric, tu es un ange ! en plus, même si c'est « en assemblant des bouts de code trouvés ici et là pour faire un bazou », t'as quand même fait un super boulot sur ce sujet !

dhany

Bon, je suis en train de reconstruire l'index de windows search avec tous les fichiers en xlsx. Ca fonctionne déjà bien mieux !

Je peux enfin faire une recherche sur le nom de rue de mes anciens clients

Bonjour,

Est-ce que tu as accès à une machine qui a encore Office 2003 ?

> plus exactement Excel 2003 ?

Si oui, tente ceci > ouvre Excel 2003 > Fichier > Ouvrir > va dans le dossier où tu auras placé une copie d'un fichier .wks > si Excel ne voit pas le fichier dans la liste > en bas à droite de la fenêtre parcourir > on peut choisir "Tous les fichiers" (*.*).

Si le fichier s'ouvre correctement > tente de l'enregistrer-sous > il sera forcément au format .xls ... car, Excel 2003 ne connait pas les fichiers .xlsx.

Puis ferme Excel 2003 > rouvre Excel 2003 et le fichier qui vient d'être consenti > Est-il bien converti ?

Si ça fonctionne > il ne restera plus qu'à reconvertir les fichiers .xls en .xlsx en lot par macro ... ce sera un pet > dhany dirait une flatulence.

Je reste à l'affût ...

ric

Lorsque je clique sur un fichier wks, celui-ci s'ouvre avec works. Je peux "enregistrer sous" ce fichier en format xls grâce à works. Mais je suis obligé de le faire fichier par fichier

Je n'ai pas ,excel 2003, et mon excel 2016 n'ouvre pas correctement les fichiers wks

Si je t'envoies mon vieux works, tu pourras faire quelque chose pour moi ? (il y a quelques milliers de fichiers wks sur mon PC...)

Edit : je confirme pour Windows Search. Le PC indexe correctement tous les ex-fichiers xlr convertis en xlsx

Bonjour,

Je demandais pour Excel 2003 car la prog en langage "Basic" du chiffrier "Calc" de OpenOffice est très difficile. Ça pourrait être long à faire quelque chose de fonctionnel.

Je veux bien que tu me fasses parvenir le Works > je vais regarder si ça serait plus simple.

Par contre, le listing des chemins et des fichiers pour les écrire dans la "Feuil2" pourra rester la même macro dans Excel 2016 ... il n'y a que la macro qui convertit qu'il faut retravailler. Car, le listing, c'est du texte qui serait aisé de passer d'un chiffrier à l'autre > dans le pire des cas, en copier/collé.

J'attends donc le lien de Works et pour ne pas faire rouspéter les gens, tu m'enverras le lien en message privé.

ric

J'ai retrouvé mes CD d'installation de works ! J'ai retrouvé Works 2000 (version 5.0 ; je crois que c'est celui-là qui s'installe sans soucis sur W10), j'ai aussi Works9 (CD avec tracking ID) et Works Suite 2006 (6 CD avec product key).

Je vais essayer de t'envoyer le premier. Je crois que c'est celui dont je me sers.

Le fichier iso fait 344 Mo et 235 Mo en zip Et je ne sais pas comment on peut le couper !

Avec WeTransfer, on peut aller jusqu'a 2Go mais il me faut ton adresse mail. Je te contact via MP

Rechercher des sujets similaires à "xlr xls wks traitement lot"