Tester si la valeur d'une cellule appartient à une liste

Aless75 Messages postés 3 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 23 avril 2009 - 23 avril 2009 à 15:06
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 24 avril 2009 à 08:23
Bonjour,

J'ai un petit souci que je n'arrive vraiment pas à résoudre...
Sur une feuille, j'ai un tableau et je souhaite effacer certaines lignes de celui-ci (en fonction de ce qui est inscrit dans la première colonne de chaque ligne). Sur une autre feuille, j'ai une liste.
Je voudrais que ma macro teste pour chaque ligne "si la première colonne contient un nom qui appartient à la liste" et, en cas de réponse positive, effacer la ligne en question. Je ne parviens vraiment pas à écrire le test en VBA.

Help

Un grand merci !

5 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 avril 2009 à 16:11
Sub test()
Dim i As Long
Dim oRange As Range
For i = 1 To ActiveSheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell).Row
Set oRange = ActiveSheet.Cells(i, 1)
If InStr(1, oRange.Value, "u", vbTextCompare) Then
'# Si le mot de la colonne contient un 'u'...
oRange.EntireRow.Delete (xlShiftUp)
i = i - 1
End If
Next i
End Sub
0
Aless75 Messages postés 3 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 23 avril 2009
23 avril 2009 à 16:25
Merci beaucoup Renfield, mais j'ai un souci supplémentaire, le "u" est en fait un nom contenu dans une liste. Par exemple, si ma liste est constituée de "New York, Paris, Madrid, Berlin", et que mon tableau comporte dans la première colonne des noms de villes, je voudrais que ma macro efface les lignes du tableau contenant dans leur premiere case New York, Paris, Madrid ou Berlin...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 avril 2009 à 16:35
combine tes tests avec OR...

If oRange.Value "New York" Or oRange.Value "Paris" Or oRange.Value = "Madrid" Or oRange.Value = "Berlin" Then
...
End If
0
Aless75 Messages postés 3 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 23 avril 2009
23 avril 2009 à 17:03
J'y pensais, mais la liste est amenée à évoluer ...
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 avril 2009 à 08:23
Evidemment... mais suffit de la stocker quelque part et d'aller y piocher les valeurs...
0
Rejoignez-nous