Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Suppression multiple de lignes - Macro

Bastien43

XLDnaute Occasionnel
Bonjour,

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:001250000
09/03/2021 00:15:001250010
09/03/2021 00:30:001250011
09/03/2021 00:45:001250050
09/03/2021 01:00:001250055
09/03/2021 01:15:001250070
09/03/2021 01:30:001250090
09/03/2021 01:45:001250092
09/03/2021 02:00:001250100

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.

Je vous remercie.
Cordialement
Bastien
 

Pièces jointes

  • Releve Compteur.xls
    194 KB · Affichages: 19
Solution
Ce que je voulais dire, en copiant de nouvelles données dans la première feuille, cela ne donne pas un résultat fiable à 100% dans la 2e
C'est fiable à 100%, Excel ne fait pas dans le bricolage.
par contre, pas moyen de le faire avec une macro ? sans 2e feuille ? ce serait plus simple.
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...

Bastien43

XLDnaute Occasionnel
Bonjour,

Encore merci pour votre aide.

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)

Je vous remercie
Cordialement
Bastien
 

Pièces jointes

  • fichiers.zip
    211.8 KB · Affichages: 3
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir Bastien43,
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)
Quand min est égal à 00, 15, 30, 45 on incrémente n de 1 et on modifie les 2 valeurs de la ligne n.

Pour traiter plusieurs fichiers c'est un autre problème.

Comme le préconise la Charte du forum créez une nouvelle discussion.

A+
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…