Macro

Résolu/Fermé
Aurélie - 10 avril 2015 à 13:06
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 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.
A voir également:

6 réponses

ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
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 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
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 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
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 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
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 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
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