Réorganiser les données de plusieurs fichiers dans plusieurs fichiers

Bonjour à tous,

Je possède des données de niveau d’eau, de température, et de date/heure sur plusieurs années et pour plusieurs sondes.

Les fichiers sont organisés par période. C’est-à-dire que je vais avoir un fichier pour une durée finie avec dans chaque onglet les données pour une sonde (le nom de l’onglet est le nom de la sonde)

Mon but serait de faire un fichier par sonde qui regroupe toutes les données de cette sonde pour toute la période d’étude.

Les fichiers que j’ai ont été fait par quelqu’un d’autre dans un but purement consultatif donc ils ne sont pas vraiment bien organisé...

Ex :

  • Les noms des fichiers sont assez brouillons ils peuvent avoir différents noms comme « avril-juillet 14 » ou bien « 04-05-06-07-2014 » ou encore « relevés de niveaux av-juil 2014 ».
  • Les dates ne sont pas forcément bien calé par rapport au titre, pour l’exemple des fichiers avril/juillet 2014 la première valeur du fichier pourra être le 04/04 à 12 :15 et la dernière le 01/08 03 :45
  • Les fichiers ne couvrent pas forcément la même période de temps la plupart sont sous forme de récapitulatif de 4 mois, d’autres synthétise 1 mois de mesure et enfin certains couvrent une période de 2 semaines. Bien entendu tous les fichiers sont ne sont pas précis sur les dates. (comme précisé dans le point d’avant)
  • Tous les fichiers ne couvrent pas les mêmes sondes, je vais par exemple avoir un fichier sur une période de temps pour 10 sondes, un autre sur la même période de temps pour d’autres sondes. Sachant que dans un fichier plus récent les sondes qui étaient ensemble au début ne le sont plus forcément après.
  • Les pas de temps des données varient. Le pas de temps peut-être horaires ou en quart d’heure en fonction des différentes dates ou sondes selon les cas
  • les fichiers ne comment pas à la première ligne car il y a du blabla au dessus. Normalement ils commencent tous à la ligne 5.

Point positif (oui il y en a un !) les colonnes sont toujours dans le même ordre :

Colonne A : numéro de la mesure (ne m’intéresse pas)

Colonne B : Date/Heure

Colonne C : Niveau d’eau côte NGF

Colonne D : Température eau (°C)

Du coup, ce que je voudrais essayer de faire c’est de faire une macro qui puisse lire le nom de l’onglet dans mon fichier qui lui donnera le nom de la sonde, puis qu’elle récupère les données pour les mettre dans un fichier portant le nom de la sonde. Que cette opération soit répétée pour tous mes fichiers. Que les nouveaux fichiers soient classés de la date la plus ancienne à la plus récente.

En bonus, si tout ça se passe comme prévu je suis sûr d’avoir des doublons au niveau des dates en sortie dans mes fichiers finaux, du coup, je recherche aussi à traquer et éliminer ces potentiels doublons.

Voilà le projet que j’avais en tête après je suis ouvert à toutes propositions qui vous semblent meilleurs !

Je vous joins un fichier que j’ai fait en exemple, pour vous montrer la mise en forme des fichiers, car les données sont confidentielles. N’hésitez pas à demander si vous voulez un exemple plus complet.

Tous conseils sont les bienvenues car c’est la première fois que je me lance dans une macro excel.

PS : je sais que j’ai mis ce post dans un forum excel, mais j’ai déjà travaillé sur matlab et R studio aussi donc si vous pensez que ce projet est plus adapté sur l’un de ces logiciels, n’hésitez pas à me le dire.

PS : j’ai essayé d’être le plus clair possible, si certains des points semblent obscurs n’hésitez pas à demander un éclaircissement.

Merci d'avance.

26exemple.xlsx (22.27 Ko)

Bonjour

Un essai à tester.

Les fichiers obtenus seront dans le même dossier que celui où sera mis le fichier ci-joint.

Cela te convient-il ?

Bye !

30exemple-v1.xlsm (30.86 Ko)

Bonjour,

Tout d'abord, merci pour ta réponse.

Ça me conviens bien ! Par contre, je rajoute deux petites questions.

Est-il possible d'appliquer la macro à plusieurs fichiers en même temps ? Et existe-il un moyen de fusionner les fichiers qui ont le même nom ?

Merci d'avance.

bonjour

salut gmb

il semble que ce soit un job pour Power Query

https://www.youtube.com/watch?v=3CVUfgdYcHo

M est un langage d'avenir, pas VBA. C'est mon avis perso de moi à moi et ça se discute

amitiés à vous

Bonjour,

Après quelques recherches. j'ai trouvé ce code pour ouvrir les fichiers d'un dossier.

Mon problème est que je n'arrive pas à le faire marcher avec le premier code.

Voici le code que j'ai trouvé :

Sub test()

Dim repertoire As String
Dim wbook As Workbook
repertoire = "C:\Users\TOTO\Downloads\"

unFichier = Dir(repertoire & "*.xls")
While unFichier <> ""
    Set wbook = Workbooks.Open(repertoire & unFichier, , True)
    'code a réaliser ici
    wbook.Close False
    unFichier = Dir
Wend
End Sub 

Voici le code que m'a founi gmb :

Option Explicit

Dim f As Worksheet

Sub CréerUnFichierParOnglet()

 For Each f In Worksheets
        If f.Name <> "Menu" Then
            f.Copy
            With ActiveWorkbook
                .SaveAs ThisWorkbook.Path & "\" & f.Name
                .Close
            End With
        End If
    Next f

End Sub

Je me suis dis que ça pouvait venir de Option Explicit car la variable unFichier n'est pas défini. Mais quand j'enlève Option Explicit, le code marche mais ne produit rien.

Un coup de main serait le bienvenue !

Merci d'avance

PS : jmd, merci pour la proposition de l'effectuer sous M mais vu que je commence à comprendre deux trois trucs sous vba je suis plus motivé à rester dedans que de repartir à 0.

Bonjour,

Je me permet de mettre un petit "up" car je suis toujours bloqué dans cette macro.

Le moindre conseil est le bienvenue.

Merci

Bonjour

Désolé mais je ne comprends pas très bien ce que tu veux faire…

Bye !

Rechercher des sujets similaires à "reorganiser donnees fichiers"