récupérer chaque jour des donées dans un nouveau fichier Excel - VB/VBA/VBS - Programmation
Marsh Posté le 27-07-2006 à 15:33:24
Déja sache que je débute en VBA.
Note que j'ai commancé par faire simple : une formule "=cheminaccesclasseur+nomclasseur+onglet+adressecellule" mais je suis bloqué losque j'essaie d'intégrer une formule "today" au sein du nom du classeur.
Donc j'ai commencé le fichier en saisissant le nom du fichier à la main. Pas de problème quand je travaille sur un fichier existant. par contre excel me renvoie une formule d'erreur losque les fichier (de demain et des jours suivants) n'éxistent pas encore. Et même une fois que le fichier a été créé ça ne marche pas super bien : je dois choisir le fichier que je cherche comme s'il s'agissait d'une pièce jointe.
Tout ça pour dire que je cherche à faire un truc tout con et que je crois qu'une macro pourrais bien m'aider.
Marsh Posté le 27-07-2006 à 15:44:37
Le "nom" de tes fichiers quotidiens est toujours le même ?
Tous ces fichiers quotidiens sont dans le même répertoire ?
Et tu veux un fichier de synthèse qui te reprend toutes les valeurs de l'onglet <quel nom> ?.
C'est bien ca ?
Marsh Posté le 27-07-2006 à 15:48:27
bah utilises la fonction Format(date, "yyyymmdd" ) pour construire le nom de fichier
Marsh Posté le 27-07-2006 à 15:49:24
- le nom de mes fichiers est construit comme suit : "valo_carav060724", "valo_carav060725", valo_carv060726"...
Tous les matins je fais un save as et je renome le fichier avec la date du jour.
Marsh Posté le 27-07-2006 à 15:53:34
Scuse, je continue
- mes fichiers sont tous dans le même répertoire
- mon fichier de synthese doit reprendre les valeur situés en cellules E4, E5, E6, E7, E8, E9, E10 et E14 de l'onglet <quel nom>
Marsh Posté le 27-07-2006 à 16:03:31
Ce que je tre propose c'est de récupérer les fichiers de ton répertoire qui ont la structure "valo_caravaammjj".
Pour chacun de ces fichiers
récupérer les valeurs des cellules E5, E6, ..E14
Mettre à jour ton fichier de synthèse en fonction du nom du fichier et du nom de la colonne de ton fichier de synthèse (la date).
En clair ton fichier ed synthèse à cette tête la :
060725 060726 060727 060728
E4 val14 val24 val31 val41
E5 val51
...
E14
Marsh Posté le 27-07-2006 à 16:05:20
Pour réucpérer les fichiers de ton répertoire :
Dim fso As Object, dossier As Object, sousRep As Object, fich As Object
Set fso = CreateObject("Scripting.FileSystemObject" )
Set dossier = fso.GetFolder("Y:" )
'Nom est la racine des fichiers : "valo_carav060724
Nom = "valo_carav"
'examen du dossier courant
For Each fich In dossier.Files
If fich.Name Like "valo_carav*" Then
Datefichier = Mid(fich.Name, Len(Nom) + 1, 6)
Valeurcherchee = GetValueWithADO(fich.Name, TaFeuille, TaCellule)
Call MajValSynthese(Datefichier, Valeurcherchee)
msg = Datefichier & vbCrLf & msg
End If
Next
Pour la fonction GetValueWithADO(fich.Name, TaFeuille, TaCellule)
voir http://frederic.sigonneau.free.fr/ [...] tValue.txt
il te reste la procedure MajValSynthese(Datefichier, Valeurcherchee) qui te permet de mettre à jour ton fichier de synthèse.
Marsh Posté le 28-07-2006 à 14:54:32
Bonjour,
J'ai essayé la procédure que tu me propose mais j'arrive à rien... pourtant ça m'a pas l'air insurmontable..
je crois que je vais commencer par aller m'acheter demain le "VBA Excel pour les nuls" (je pense que ça peut pas me faire de mal) et que je vais revenir vers toi plus tard
A très vite donc, merci encore
Marsh Posté le 27-07-2006 à 14:50:15
Bonjour,
Je calcule au jour le jour la valeur d'un bien, pour cela je doit créer chaque jour un fichier Excel nommé selon le shémat suivant : "nom, datedujour"
Ces fichiers se composent de plusieurs onglets dont le dernier reprend tous les éléments de la valeur du jour (nommé "valo" ).
Je cherche à créer, dans un nouveau classeur, un historique me permettant de mettre en liste les valeurs de chaque jour en face de la date correspondante.
Pourriez vous m'aider à créer la macro qui m'éviterais de faire un copier coller chaque jour ?
D'avance merci