Supprimer lignes Excel

Bonjour,
je me retrouve face à un gros problème sur excel :
J'ai environ 300 lignes que j'aimerais trier de façon à ce que toutes les lignes ne comportant pas une cellule remplie en rouge soient supprimées.
Merci d'avance pour l'aide !

2 réponses

  1. Bonjour
    essayez ceci
    Créez un bouton sur votre feuille et affectez lui la macro suivante:
    Sub SuppLigneNonRouge()
        Application.ScreenUpdating = False
        DerLig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
        DerCol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
        For Lig = 2 To DerLig
    PremCol:
            For Col = 1 To DerCol
                If Cells(Lig, Col).Interior.ColorIndex = 3 Then GoTo LigneSuivante
            Next Col
            Cells(Lig, Col).EntireRow.Delete
            DerLig = DerLig - 1
            If DerLig = 0 Then Exit Sub
            GoTo PremCol
    LigneSuivante:
        Next Lig
    End Sub
    le code s'éxécute à partir de la ligne 2, les cellules en rouge peuvent se trouver n'importe où sur la ligne testée. bonne journée
    cdlt
    0
    1. Bonjour Frenchie83,
      le code ne marche pas. Alors est ce peut être parce que je ne sais pas comment créer un bouton?
      Je me suis juste contenté de créer une macro avec votre code, je l'ai exécutée et rien ne se passe.
      En tout cas merci de votre réponse !
      Cdlt
      0
    2. Re
      Evidemment avant de vous l'envoyer j'ai fait des essais qui s'avéraient concluants.
      Cependant, j'ai travaillé en aveugle, et il se peut que les références que j'ai pris pour démarrer le programme ne correspondent pas à votre fichier.
      Pour cela , je vous propose que vous mettiez un échantillon de votre fichier (Quelques lignes suffisent et sans données personnelles) sur www.Cjoint.com, ainsi je pourrai y adapter le programme en conséquence.
      A+
      0
    3. Suite à la remarque précédente, j'avais oublié de préciser quelque chose de très important, c'est que j'ai pris une couleur rouge dont l'index est = à 3, or il est fort probable que ayez pris un rouge dont l'index est totalement différent.
      0
    4. Re
      Voici le lien : https://www.cjoint.com/c/CHwoxG1HLKI
      Pour la couleur rouge, ce que j'ai fait est que mon document comportant 1000 et quelques lignes, j'ai cliqué l'onglet 'remplacer'; entré par exemple "BVF"; remplacé par "BVF" sauf que j'ai ajouté un remplissage en prenant le deuxième rouge proposé par défaut.
      Ainsi, les éléments que je recherche apparaissent de manière plus évidente.
      Merci pour votre patience !
      0
    5. Je dois m'absenter en urgence, je reprendrai un peu plus tard
      A+
      0
  2. Me revoilà
    Une petite explication s'impose. Par défaut j'utilise Excel 2007, alors que votre fichier est dans une version antérieure. Je voyais donc toutes les cellules de la colonne O en gris, alors qu'Excel me donnait un index 3 qui correspond au rouge
    voici donc le fichier
    https://www.cjoint.com/c/CHwsznqK9sB
    en espérant que cela fonctionne bien chez vous
    bonne soirée
    cdlt
    0
    1. Rebonsoir, ma version d'excel est la 2010.
      Peut être que le propriétaire du fichier a une version antérieure.
      Malheureusement, le code ne marche toujours pas, et même dans votre fichier joint.
      "Impossible d'exécuter le macro".
      Pourtant, quand je configure moi-même un macro il l'accepte.
      Vous pouvez peut être essayer de m'envoyer simplement le code?
      Ceci dit ne vous embêtez pas, j'ai déjà bien avancé à la main, la technologie ne nous rend pas toujours service ^^.
      Merci !
      0
    2. Rebonsoir
      j'ai trouvé, problème de syntaxe entre 2007 et ancienne version, cette fois-ci ça doit marcher
      Sub SuppLigneNonRouge()
          Application.ScreenUpdating = False
          DerLig = Range("B10000").End(xlUp).Row
          DerCol = Range("IV2").End(xlToLeft).Column
          For Lig = 3 To DerLig
      PremCol:
              For Col = 1 To DerCol
                  If Cells(Lig, Col).Interior.Color = 255 Then GoTo LigneSuivante
              Next Col
              Cells(Lig, Col).EntireRow.Delete
              DerLig = DerLig - 1
              If DerLig = 0 Or DerLig < Lig Then Exit Sub
              GoTo PremCol
      LigneSuivante:
          Next Lig
      End Sub

      bonne soirée
      cdlt
      0
    3. Bonsoir Frenchie,
      le code marche, sauf qu'il me supprime tout sans exception.
      J'en déduis que cette fois c'est peut être le code couleur.
      Mais, comme la couleur que j'ai utilisée est une couleur prédéfinie je ne trouve pas son code :/.
      (J'ai utilisée la même que celle jointe dans le fichier exemple).

      Bonne soirée
      Cdlt
      0
    4. C'est sûrement ça, pour connaître le code, utilisez l'enregistreur de macro pour coloré une cellule avec cette couleur et regardez le code couleur utilisez et le copier dans le programme
      0
    5. j'oubliai, changez la couleur de la colonne O, mettez la en bleue par exemple
      0