VBA Excel supprimer des lignes grâce à un mot

Fermé
Sabrina - 27 avril 2007 à 15:26
 kalek9 - 19 mars 2011 à 18:41
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!
A voir également:

5 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
27 avril 2007 à 15:43
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
sabryd Messages postés 5 Date d'inscription vendredi 27 avril 2007 Statut Membre Dernière intervention 3 mai 2007
27 avril 2007 à 15:48
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
Kvo Messages postés 27 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 22 mai 2008 3
27 avril 2007 à 17:25
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
27 avril 2007 à 17:41
Le code de kvo me semble excellent.
A+
louis
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
2 juil. 2009 à 14:31
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
knoizell Messages postés 1 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 2 juillet 2009
2 juil. 2009 à 08:36
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
C'est génial, ce truc !
Merci infiniment, ça simplifie la vie.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour a tous,

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

Merci d'avance.
-1