Macro

Résolu
Aurélie -  
ccm81 Messages postés 11033 Statut Membre -
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

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    1. Aurélie
       
      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
  3. Maurice
     
    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
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    1. Aurélie
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    OK,

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

    Cdlmnt
    0
    1. Aurélie
       
      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
  7. ccm81 Messages postés 11033 Statut Membre 2 434
     
    0
    1. Aurélie
       
      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