Projet Récupération de données

Bonjour à tous,

Je souhaite me lancer dans un projet pour améliorer le quotidien des personne de mon entreprise.

Je vous décris mon entreprise ce qui va nous servir pour la suite:

Nous avons 3 lignes de production qui fonctionne jour et nuit sauf le week end

J'ai 2 dossier situé sur le réseau

- un dossier " ARCHIVE "

- et un dossier " A TRAITER"

Dans lequel ce situe les fichier excel récapitulatif des performance de chaque lignes de production.

Voici leur syntaxe :

NomDeLaLigne-DATEAUFORMATAAAAMMJJ-PosteMatinAprèsMidiNuit

Donc voila j'aimerais récupérer des donnes de ces classeur pour pouvoir faire un tableau récapitulatif par la suite.

Vous allez me dire facile de récupérer les données, mais tout les jours le nom des classeur change vu que l'on y met la date du jour.

Je ne sais pas du tout comment faire :

Peut être récupérer le nom des classeur qu'il y'a dans les dossier et ensuite les trier Par Ligne ( P1, P2, P3) ensuite par date et par poste.

Ou créer une programmation qui cherche le fichier du jour du genre :

P1-20160608-M

P1-20160608-AM

P1-20160608-N

P1-20160609-M

etc...

en tout cas si vous avez une idées ou un début de quelque chose pour que je puisse me lancer. Je vous demande pas de me mâcher la chose, mais juste me données un coup de main avec vos connaissance sous excel et vba.

J'ai très peu de base en vba, j'ai juste fait une fois un classeur excel qui faisait un calcul en appuyant sur un bouton ^^ mais je cherche pas mal de truc et astuce sur internet.

Merci d'avance

Bonjour,

Une première contribution :

Dim FJ() As String

Sub FichiersJour()
    Dim man, d$, i%, j%
    d = "-" & Format(Date, "yyyymmdd") & "-"
    man = Split(";M;AM;N", ";")
    ReDim FJ(8)
    For i = 1 To 3
        For j = 1 To 3
            FJ((i - 1) * 3 + j - 1) = "P" & i & d & man(j) & ".xlsm"
        Next j
    Next i
End Sub

Cette procédure te constitue la liste de tes noms de fichiers dans un tableau de 9 éléments (indicés de 0 à 8).

Date est la fonction qui renvoie la date du jour, si on traite ceux du jour très bien, s'ils sont datés de la veille il faudra mettre Date-1 pour ajuster...

La variable tableau FJ() qui recueille les noms est déclarée au niveau module, donc à l'issue de son exécution tu disposes d'un tableau des noms de fichiers à traiter qu'une autre procédure pourra utiliser pour les atteindre successivement en boucle.

Pour visualiser le résultat tu ajoutes la petite macro à lancer ensuite, qui te montrera les noms dont tu peux disposer (jusqu'à ce que tu fermes le classeur [ou qu'un plantage réinitialise les variables, mais c'est une autre histoire !]).

Sub Msg()
    Dim i%
    For i = 0 To UBound(FJ)
        MsgBox FJ(i)
    Next i
End Sub

Cordialement.

Salut,

je comprend ce que tu veux me dire mais je ne saurais pas l'appliquer ^^ comme je te dit je suis novice en la matière.

je comprend un peu ton code, comment il va recueillir les noms des fichiers ? dans quel emplacement ?

et ensuite avec ta macro je dois la placé dans "ThisWorkBook" je me souviens plus

Il faut que tu précises ton projet et parallèlement que tu acquières le minimum de connaissances nécessaires pour comprendre les propositions que l'on pourra te faire et te mettre en mesure de les utiliser...

Tu as un projet très virtuel pour l'instant, tes dossiers sont dans des serveurs sur le réseau. Pour travailler avec il va falloir définir ce que tu dois faire, mais tu travailleras toi directement à partir d'un classeur Excel pour manipuler tes autres fichiers et les données que tu vas y prélever probablement..

Tant qu'au moins une ébauche n'est pas définie avec un peu de consistance, il est difficile de faire des propositions. Tu as évoqué une première question concrète, les noms de fichiers variant quotidiennement, mais avec une structure bien définie. Devant disposer d'une façon ou d'une autre des noms pour les atteindre, j'ai pu te proposer une procédure pour en constituer la liste journalière, sous forme d'un module que tu pourras intégrer dans n'importe quel processus...

Il faut que tu commences à matérialiser à partir d'un classeur et que tu te familiarises avec l'utilisation de l'éditeur VBA et que tu puisses distinguer le rôle de chacun des éléments que tu auras à utiliser.

Dans l'éditeur, outre des outils de programmation divers, tu trouveras des modules. Les modules sont des feuilles blanches destinées à accueillir du code qui sera transformé en "actions" par un interpréteur de commande... Il y a des modules préexistants attachés à des objets : tu as cité ThisWorkbook, l'un d'entre eux dévolu à l'objet classeur (Workbook), chaque feuille de calcul (Worksheet) de ton classeur a également le sien, et quand tu créeras des formulaires (Userform) ou boîte de dialogue, chacun est créé avec un module qui lui correspond. Pour l'essentiel, ces modules particuliers qui sont privés sont réservés à des procédures spécifiques, dites évènementielles, déclenchés par des évènements survenant sur l'objet concerné et il n'est pas utile, sauf exception de les encombrer avec du code standard. Tu disposes de modules standard pour cela, que tu insères au gré des besoins. Inutile de les multiplier, un suffit, hors besoins particuliers d'isoler des fonctionnalités par rapport à d'autres...

Je t'encourage à regarder le cours VBA du site, en ce qui concerne les premiers rudiments et t'y retrouver dans l'éditeur, puis à manipuler les éléments. Tu colleras le code fourni dans un module standard, tu raccorderas les procédures à des boutons pour les lancer, ce qui commencera à te faire acquérir des manipulations de base...

Et par ailleurs il te faut développer la conception de ton projet, définir ce que tu vas faire, selon quelles modalités, pour obtenir quels résultats... C'est de loin le plus important, ce qui n'est pas pensé à ce moment-là, ce sera des dysfonctionnements futurs, et une fois la programmation lancée, on ne rattrape les maillons manquants que par des rustines plus ou moins bien intégrées et on perd toujours quelque chose...

A toi de poursuivre la réflexion.

Oui tu as raison.

Je viens de lire tout le cours vba pour me remémorer toutes les fonctions. Et je pense que cela va me prendre beaucoup trop de temps pour pas grand chose au final. J'ai déjà mis pas mal de temps analysé rien que ton petit bout de code ( bon bien sur ça été plus vite en ayant lu le cours vba mais bon). Je vais abandonné l’idée, ce n'est pas l'envie qui m'en empêche mais le temps.

Merci en tous cas de tes réponse rapide et de tes conseils .

Désolé de te voir renoncer si vite... Mais reviens quand tu veux.

Bonne journée.

Rechercher des sujets similaires à "projet recuperation donnees"