Extraction web - Importation et formatage données

KIM

XLDnaute Accro
Bonjour le forum,
une aide efficace m'a été apportée par le forum et surtout Thierry, JeanMarie, PierreJean, DidiermDF pour la partie creation de feuille, regroupement de données et formatage de fichiers.
J'ai été beaucoup aidé sur d'autres sujets par Monique, Celeda, MichelXld, Dan, Charlie, ... et la liste est longue.
Merci au forum.
Ci-joint la première phase de mon application qui consiste à:
1- se connecter sur un site, extraire les données au format texte tabulé, et sauvegardé les données.
2- Si l'extraction est déjà faite, rechercher le fichier sur le disque dur (ci-joint le fichier cdpm.txt), et l'intégrer dans la feuille 'IMPORT' du fichier import2.xls:
-vider la feuille IMPORT
- formater les colonnes,
- importer le fichier,
- conversion des données
- remplacer des données
- extraire des données d'une colonne à une autre,
( par vba j'ai su extraire les 2 premiers car, je n'ai pas su extraire dans une autre col le reste de la cellule après le car ' - ')

Tout se deroulement fonctionne bien sur un fichier test. mes données peuvent aller jusqu'à 30 col et 40 000 lignes. Est-il possible d'améliorer le code en modifiant en intégrant les Array? Je sais que ce sera plus rapide mais je ne sais pas faire.
Je vous remercie d'avance
Amicalement
KIM [file name=ProjetKIM.zip size=28603]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ProjetKIM.zip[/file]
 

Pièces jointes

  • ProjetKIM.zip
    27.9 KB · Affichages: 27

ChTi160

XLDnaute Barbatruc
Salut KIM
en pièce jointe mon interprétation de ce que j'ai cru comprendre
la conversion et le formatage se font beaucoup plus rapidement.
comme je te l'avais suggéré je multiplie les valeur par 1 et ensuite je formate plage
enfin tu vois je ne sais pas si cela réponds à la question Lol
je n'ai pas joins le fichier text
bonne nuit [file name=import13.zip size=21210]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/import13.zip[/file]
 

Pièces jointes

  • import13.zip
    20.7 KB · Affichages: 33

KIM

XLDnaute Accro
Bonjour JeanMarie et le Forum,
Merci pour la modif,
sur un fichier de 4000 lignes, je passe de 1.13 à 1.08 min.

1- Au lancement, l'application me pose la question:'avez vous téléchargé l'extraction web?'
-je n'ai meme pas le temps de repondre que le navigateur web se lance.
- aussi qund je repond par oui, il m'ouvre la fenetre windows pour parcourir le disque.

Comment modifier le code pour:
a- au lancement toujours poser la question::'avez vous téléchargé l'extraction web?'
a1: si oui, il importe automatiquement le fichier definit par la variable OFile à condition que ce fichier soit dans le repertoire courant de l'application. S'il n'existe pas dans le repertoire courant, à ce moment il lance la fenetre windows pour parcourir le disque et passe à l'étape d'importation du fichier.
a2: sinon l'appli se connecte au web. Sur le web je sauvegarde le fichier extrait du web et et passe à l'étape d'importation du fichier sauvegardé. J'espere qu'il y a possibilité de memoriser l'emplacement de la sauvegarde et le nom de sauvegarde.
2- Split de la colonne P
J'ai pu recopier les 2 premiers car de la col P dans la col AD voir code (Extraction du N° DR DE LA COLONNE P VERS LA COL AD).
La col P est divisée en 2 parties séparée par un ' - '. comment modifier le code pour découper la col P et recopier la 1ere partie dans la col AD et la 2ieme partie dans la col AE.
Merci d'avance
Cordialement
KIM
 

ChTi160

XLDnaute Barbatruc
Salut KIM
arff pas beaucoup de temps ni de patience Lol
je t'ai mis dans le Module 1 du fichier deux macro tu testes, cela peut peut être te servir je tenterai de faire mieux lol dès que j'aurai du temps et le courage Lol(Déménagement , ménagement ,Travaux chez ma fille )
il y a des commentaires
bonne nuit [file name=import14.zip size=21817]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/import14.zip[/file]
 

Pièces jointes

  • import14.zip
    21.3 KB · Affichages: 38

ChTi160

XLDnaute Barbatruc
Re KIM
pour ce qui est de la découpe de ta cellule en deux voilà un exemple a adapter j'ai mis Cel.value pour l'exemple cela représente la chaine de caractères à traiter
Sub test()
'voir aide VBA pour Mid et InStr
'ici on recherche la possition de '-' en partant du premier caractere de la valeur de la cellule _
on récupère ce qu'il y a devant '-' d'ou le -1
PremierePartie =
Code:
Mid(cel.Value, 1, InStr(1, cel.Value, '-') - 1)
'ici à partir de la possition de '-' +1 on récupère ce qu'il y a après
DeuxiemePartie =
Code:
Mid(cel.Value, InStr(1, cel.Value, '-') + 1)
End Sub

Arfff Bonne nuit
 

KIM

XLDnaute Accro
Bonjour JeanMarie et le forum,
J'espére que tu n'es pas trop fatigué et que le WE se déroule bien.
J'ai testé tes 2 macros dans le module1. Ma logique est un peu différente. Le but est soit d'extraire le fichier du site web et l'importer pour avoir la dernière extraction à jour, ou bien d'importer le fichier dans le dossier courant de l'appli et s'il ne le trouve pas d'ouvrir la fenetre windows pour parcourir le disque et rechercher le fichier souhaité. Ainsi Au démarrage de la macro 'Open_Fichier', la macro pose la question::'avez vous téléchargé l'extraction web?'
1- Si la reponse est NON: l'appli se connecte au web. Sur le web je sauvegarde le fichier extrait du web et et passe à l'étape d'importation du fichier sauvegardé. J'espere qu'il y a possibilité de memoriser l'emplacement de la sauvegarde et le nom de sauvegarde ou par defaut le sauvegarder dans le repertoire courant (remplace l'existant).

2- Si la reponse est OUI: la macro importe automatiquement le fichier definit par la variable OFile par defaut du repertoire courant à condition que ce
fichier soit dans le repertoire courant de l'application. S'il n'existe pas dans le repertoire courant, à ce moment il lance la fenetre windows pour parcourir le disque et passe à l'étape d'importation du fichier.

Meme si le fichier existe dans le repertoire courant, il faut que la macro me demande le choix à importer soit une mise à jour du web soit importation locale.
Des que tu as le temps merci d'avance pour les modifs.
Bien amicalement
KIM
 

KIM

XLDnaute Accro
Re JM et le forum,
Concernant la decoupe, elle fonctionne mais elle bloque quand le car ' - ' n'existe pas dans la cellule.
J'ai réglé ce probleme en inserant la ligne
On Error Resume Next
Sinon Comment tester l'existance du car ' - ' dans une cellule avant la decoupe par MID.
Merci
KIM
 

KIM

XLDnaute Accro
Bonjour JeanMarie et le forum,
J'ai essayé de modifier la macro du module 1 (import14.zip) sans resultat satisfaisant. Je n'arrive pas à appliquer ma logique d'execution.
Merci d'avance si le temps et la disponibilité le permettent.
En effet:
Au lancement de la macro Open_Fichier:
question::\\'Voulez-vous télécharger une nouvelle extraction web?\\'

A-Reponse OUI:[/b]
1- connection web.
- extraction et exportation des données dans un nouveau fichier excel (dont le nom est toujours different à chaque fois). C'est l'application Web qui permet cette exportation.

A cette etape là 2 classeurs sont ouverts l'initial et le nouveau créé lors de l'exportation du web.
est-il possible de poursuivre par:
2- activer le nouveau fichier excel (le seul classeur excel dont le nom est different du classeur initial)
3-copier toutes les données de la page active
4- coller dans la feuille 'IMPORT' du classeur initial à partir de la cellule A5.
5-Sauvegarder le nouveau fichier d'exportation dans le repertoire courant avec le nom : 'cdpm'- date du jour
6- retour au fichier initial.

B- reponse NON:
1- importer le fichier definit par la variable OFile par defaut du repertoire courant.
2- Si ce fichier n'existe pas dans le repertoire courant,
-lancer la fenetre windows pour parcourir le disque
- sélectionner le fichier à importer
et lancer la meme procedure d'importation que précédemment.
A-Reponse Annuler:[/b]
- Ne rien importer et continuer la suite de la macro.

merci d'avance.
Bien amicalement
KIM
 

ChTi160

XLDnaute Barbatruc
Salut KIM
Bonjour le fil
Bonjour Le Forum

arfff pas évident à comprendre lol
voila ce que j'ai pensé

tu mets ton message au lancement de la Macro
rep=Msgbox Bla bla
if rep=vbYes then
la tu importes ton fichier
Ce classeur à l’importation est le classeur active oui ou non ????
Ce nouveau fichier est extrait (avec un certain nom) mais ce classeur n’est pas enregistré lors de l’importation donc tu dois pouvoir faire dans la macro importation un truc du genre
ActiveWorkbook.SaveAs Chemin_Fichier & '\\\\\\\\ cdpm' & Format(Date, 'DD-MM-YYYY') & '.txt' ' on sauvegarde le nouveau classeur avec ce nom ' cdpm.txt'
chemin fichier pouvant être définie par le chemin du fichier initial
chemin fichier = C:\\\\\\\\ .....etc
Ensuite,de ce classeur renommé tu extrais les données comme tu sais le faire
ca c'est pour le cas ou la réponse est Oui
je ne sais pas si j'ai bien compris Lol
si c'est non on peut dans un premier temps vérifier si le classeur cdpm * ,existe dans fichier C:\\\\\\\\..... etc
si oui l'ouvrir
si non ouvrir la fenêtre pour rechercher mais normalement si on enregistre le classeur lors de son importation on ne devrait pas le chercher enfin tu vois ce que je t'ai proposé et tu me tiens au courant lol
Bonne journée

Message édité par: Chti160, à: 26/04/2006 10:18
 

KIM

XLDnaute Accro
Bonjour JeanMarie et le forum,
Merci encore,
Pour repondre à tes questions
.... Ce classeur à l’importation est le classeur active oui ou non ????
OUI

Tu définis exactement la logique que je souhaite
mais
en lançant ta macro, si le fichier cdpm.txt existe dans le repertoire courant il l'ouvre automatiquement sans me donner le choix
J'ai fait des essais de modif sans vraiment bien reussir.
Bien amicalement
KIM
 

ChTi160

XLDnaute Barbatruc
Salut KIM

bon un bon point donc tu vois que tu peux lors de l'importation enregistrer ton fichier ou tu le veux cela supprime le fait de devoir le chercher
pour ce qui est de ma macro je pense qu'elle va changer
dans un premier temps tu crées la macro qui importe ,qui sauvegarde ensuite ce fichier renommé sous cdpm.txt dans le classeur que tu auras déterminé C:\\\\\\\\ ....etc
ainsi on a le nom et l'emplacement l'idéal serait que tu crés un classeur ou ne figure que le fichier importé
dit moi ,ce classeur cdpm.txt une fois importé et transféré tu en fais quoi ??? tu les conserve tous ou tu les supprimes ensuite
PS pour ce qui est du fait que la macro ouvre sans demander, il suffit je pense de faire la demande lors du teste
exemple si fichier existe alors demande si ouverture si oui on ouvre sinon on quitte
bonne journée

Message édité par: Chti160, à: 26/04/2006 10:34
 

ChTi160

XLDnaute Barbatruc
Re KIM
on va y arriver Lol
bon en fichier joint une autre version à adapter tu t'en doute
j'ai considéré dans ce fichier qu'a l'importation le fichier actif a été enregistrédans le même classeur que le classeur initial
donc tu ouvre la pièce jointe dans le classeur ou ce trouve le Classeur cdpm.txt
tu testes [file name=import15.zip size=23318]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/import15.zip[/file]

Message édité par: Chti160, à: 26/04/2006 11:06
 

Pièces jointes

  • import15.zip
    22.8 KB · Affichages: 36

Discussions similaires

  • Résolu(e)
Microsoft 365 Tri et Import
Réponses
4
Affichages
249

Statistiques des forums

Discussions
312 697
Messages
2 091 074
Membres
104 751
dernier inscrit
yanmath