Macro

Résolu/Fermé
Aurélie - 10 avril 2015 à 13:06
ccm81
Messages postés
10317
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 mai 2022
- 13 avril 2015 à 10:10
Bonjour à tous,

Je reviens de nouveau faire appel à vous après m'avoir apporté une grande aide, je cherche à présent à trier mon tableau afin d'avoir une meilleure visibilité sur celui-ci. Je vous joint mon tableau afin de mieux comprendre ma situation:
http://cjoint.com/?3DknrZ8oBI0

Encore merci de votre aide.
Aurélie.

6 réponses

ccm81
Messages postés
10317
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 mai 2022
2 292
Modifié par ccm81 le 13/04/2015 à 10:22
De rien

RQ. Pour le test des cellules vides, je n'ai pris en compte que la colonne Attente. Si Attente peut être non vide et Différence vide, pour conserver la plage, il faudra modifier un peu le code
1. Ajouter Diff dans la liste des variables déclarées
Dim SuppPlage As Boolean, Att, hhh As Date, Diff
2. Ajouter/modifier les deux lignes où Diff intervient (en deux endroits du code)
Att = .Cells(li1, cohh + 1)
Diff = .Cells(li1, cohh + 2)
If Att = "" Or Diff = "" Then SuppPlage = False

Bonne journée
1
ccm81
Messages postés
10317
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 mai 2022
2 292
10 avril 2015 à 13:29
Bonjour

Deux questions (pour le moment)
1. Pourquoi les lignes 107, 156, 264 ne sont pas à conserver alors qu'en colonne A il y a bien hh:mm:00
alors que tu as conservé la ligne 210 située en "plein milieu" d'une plage à supprimer
2. en résumé tu veux garder ?
- les lignes où Axx = hh:mm:00
- les plages d'une minute entre hh:mm:00 et hh:mm:59 mais seulement s'il y a des vides en colonnes B et/ou C

Cdlmnt
0
Bonjour, excusez mon retard (décalage horaire)
1 - Oui effectivement j'ai oublié de les surligner

2 - C'est exactement ça :)

J'ai plusieurs tableaux à traiter qui me prennent beaucoup de temps, et le gain de de temps serait considérable en raison des nombreuses lignes à traiter.
0
Bonjour
deja voila une macro pour Del couleur

Sub supprCouleur()
Nlig = Range("A" & Rows.Count).End(xlUp).Row
Coul = Feuil1.Range("E2").Interior.Color
   For L = Nlig To 2 Step -1
      If Range("A" & L).Interior.Color = Coul Then
         Range("A" & L & ":C" & L).Delete Shift:=xlUp
       End If
   Next
End Sub

A+
Maurice
0
ccm81
Messages postés
10317
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 mai 2022
2 292
Modifié par ccm81 le 11/04/2015 à 16:37
OK
Encore trois questions
3. Veux tu une copie élaguée de ta plage ou on élague carrément la plage elle même (suppression de lignes)
4. Quel est l'ordre de grandeur du nombre de lignes maxi à traiter
5. L'heure de la dernière ligne est elle toujours hh:mm:00

RQ. Tu devrais t'inscrire comme membre sur le site, c'est gratuit et ça permet un accès direct aux liens fournis

Cdlmnt
0
Bonjour, merci de me consacrer du temps.
- Non pas besoin de copie, merci.
- On peut atteindre près des 50.000 pour certains.
- Non c'est totalement aléatoire :/

Oui je pense que je vais faire cela aussi :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81
Messages postés
10317
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 mai 2022
2 292
12 avril 2015 à 11:57
OK,

Un début de réponse à tester, avec quand même deux questions supplémentaires
https://www.cjoint.com/?3Dmmkr4PsaQ

Cdlmnt
0
Bonjour, de nouveau merci c'est super !
1 - Non, de même c'est aléatoire elle n'est pas toujours du type "hh:mm:00".
2 - C'est le même traitement s'il y a un vide dans la colonne "Attente" et Différence" il faut conserver toutes les lignes de la minute écoulée.
0
ccm81
Messages postés
10317
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 mai 2022
2 292
Modifié par ccm81 le 12/04/2015 à 15:19
0
Bonjour, et bien une fois de plus jolie travail !

Merci beaucoup encore pour votre temps, pour moi cela va être un gain temps considérable.
0