Supprimer lignes Excel

Bwetch Messages postés 6 Statut Membre -  
Frenchie83 Messages postés 2254 Statut Membre -
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. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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. Bwetch Messages postés 6 Statut Membre
       
      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. Frenchie83 Messages postés 2254 Statut Membre 339
       
      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. Frenchie83 Messages postés 2254 Statut Membre 339
       
      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. Bwetch Messages postés 6 Statut Membre
       
      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. Frenchie83 Messages postés 2254 Statut Membre 339
       
      Je dois m'absenter en urgence, je reprendrai un peu plus tard
      A+
      0
  2. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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. Bwetch Messages postés 6 Statut Membre
       
      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. Frenchie83 Messages postés 2254 Statut Membre 339
       
      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. Bwetch Messages postés 6 Statut Membre
       
      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. Frenchie83 Messages postés 2254 Statut Membre 339
       
      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. Frenchie83 Messages postés 2254 Statut Membre 339
       
      j'oubliai, changez la couleur de la colonne O, mettez la en bleue par exemple
      0