J'ai un fichier "releve compteur" : la première colonne contient la date+heure et la deuxième le volume relevé.
Je cherche à conserver uniquement les lignes de relevé qui ont lieu toutes les 15 minutes avec leur volume correspondant. Par exemple :
09/03/2021 00:00:00
1250000
09/03/2021 00:15:00
1250010
09/03/2021 00:30:00
1250011
09/03/2021 00:45:00
1250050
09/03/2021 01:00:00
1250055
09/03/2021 01:15:00
1250070
09/03/2021 01:30:00
1250090
09/03/2021 01:45:00
1250092
09/03/2021 02:00:00
1250100
Je souhaite supprimer les lignes non nécessaires. J'ai plusieurs fichiers de ce type et les relevés compteurs ne sont pas identiques. L'espacement entre les dates peut varier.
La date de relevé peut être aussi sur une journée ou bien s'étendre sur plusieurs jours (1 semaine).
Comment faire une macro ? Des idées svp ? ou bien une solution ? La tâche manuelle est fastidieuse.
On peut bien sûr ne pas utiliser une 2ème feuille et c'est très facile, mais alors les données sources seront perdues, c'est un inconvénient.
Placez cette macro dans un module standard (Module1) :
VB:
Sub Une_feuille()
Dim tablo, i&, dat$, min%, n&
tablo = [A1].CurrentRegion.Resize(, 2) 'feuille active
For i = 1 To UBound(tablo)
dat = Format(tablo(i, 1), "mm/dd/yyyy hh:mm") 'date au format US
min = Val(Right(dat, 2))
If...
J'essaie maintenant d'appliquer cette méthode à tous les fichiers contenus dans un dossier.
J'ai tenté une macro mais cela ne fonctionne pas . @job75 Pourriez vous m'aider svp ? Je me suis inspiré de votre fichier. Je la joins en pièce jointe.
L'idée est de lancé la macro à partir d'un fichier Excel et de mettre à jour tous les sous-dossier.
Aussi j'ai du mal à comprendre cette instruction :
If min Mod 15 = 0 Then n = n + 1: tablo(n, 1) = dat: tablo(n, 2) = tablo(i, 2)