VBA Excel supprimer des lignes grâce à un mot

Sabrina -  
 kalek9 -
VBA EXCEL - Créer macro supprimer des lignes

Bonjour,

J'ai une liste de données dans excel et j'aimerais créer une macro qui a chaque fois qu'il voit apparaître un mot, il supprime la ligne qui le concerne. Je suis très débutante et je n'y arrive pas.

Merci de votre aide!
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    bonjour,
    le mot recherché est-il toujours dans la même colonne ?
    Ta macro doit-elle faire toute les lignes ou c'est ligne par ligne ?
    Au cas ou tu n'a pas besoins d'autre chose voila la commande pour supprimer une ligne

    Worksheets("Sheet1").Rows(3).Delete
    sheet1= le nom de la feuille
    3 = le N° de la ligne
    Attention, quand tu supprime une ligne, tout est mis a jour immédiatement, donc si, par exemple tu veux supprimé le mot TEST et dans la ligne 3 et 4 il y a TEST, la premiere commande va supprimé la ligne 3, mais la suivante va être de nouveau la ligne 3 donc tu doit retesté la même ligne.
    J'espère avoir été assé clair.
    A+
    louis
    1
    1. sabryd Messages postés 5 Statut Membre
       
      Bonjour Louis,

      Merci pour ta réponse!

      Le mot recherché change de ligne à chaque fois. C'est que je vais chercher des données grâce à SQL et les données change à chaque jour. Donc la ligne 3 un matin peut contenir le mot que je veux supprimer des fois non.

      Le mot est toujours dans la même colonne, mais jamais sur la même ligne.

      Aurais-tu une solution?
      Sabrina
      0
    2. Kvo Messages postés 27 Statut Membre 3
       
      Voilà le code!
      Il faut juste que tu remplaces "tonmot" par le mot qui te sert de critère (n'oublie pas les guillemets).

      Je suppose ici que ton mot est dans la première colonne. Si ce n'est pas le cas, là où il est écrit cells(b,1) change le 1 par le numéro de ta colonne (1 pour colonne A, 2 pour colonne B, 3 pour colonne C...)

      Bonne chance :)


      Sub Supprimerligne()
      
      Dim a As Long
      Dim b As Long
      
      a = Range("A65536").End(xlUp).Row
      
      For b = a To 1 Step -1
      
          If Cells(b, 1).Value = "tonmot" Then
          
              Rows(b).Delete
          
          End If
      
      Next b
      
      End Sub
      0
    3. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Le code de kvo me semble excellent.
      A+
      louis
      0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    C'est un peu plus compliqué mais pas trop...
    Sub SupprimerligneAvecMerge()
    Dim Lig As Long
    Dim Col As Integer
    Dim Mg, TB
        'pour l'exemple, la colonne à tester =3
        Col = 3
        For Lig = Cells(65536, Col).End(xlUp).Row To 1 Step -1
            Set Mg = Cells(Lig, Col).MergeArea
            TB = Split(Mg.Address, ":")
            If Cells(Lig, TB(0)).Value = "tonmot" Then
                Rows(Lig).Delete
            End If
        Next Lig
    End Sub

    A+
    1
  3. knoizell Messages postés 1 Statut Membre
     
    Bonjour,

    Merci pour les Codes précédent.

    J'ai a supprimer des lignes qui contienne un mot particuliers donc j'ai bien repris le code de kyo et il fonction pour une partie des lignes mais d'est que j'ai des céllule fusionné elle ne fonctionne plus esque vous auriez une solution ?

    bonne journée et merci d'avance.
    0
  4. Python
     
    C'est génial, ce truc !
    Merci infiniment, ça simplifie la vie.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kalek9
     
    Bonjour a tous,

    Et si le mot en question contient un "espace", comment il se matérialise??

    Merci d'avance.
    -1