Trie tableau excel fct contenu cellules

Fermé
Seb - 22 mars 2009 à 19:35
leplot Messages postés 191 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 13 août 2015 - 23 mars 2009 à 11:43
Bonjour à tous,

Voici ma problématique.

J'ai un tableau de données dans excel avec un nombre de lignes pouvant varié (de 500 à 2000 env.) et un nombre de colonnes fixe (20). Dans ce tableau, je souhaiterais garder à la fois:
_ toutes les lignes pour lesquelles les termes "DEFINITION" ou "SENS" ou "SIGNIFICATION" sont présents dans la cellule de la colonne T
_ toutes les lignes pour lesquelles le terme "MESURE" est présent dans la colonne H.
_ supprimer toutes les autres lignes

Je débute en VBA et j'avoue que je m'y perd un peu actuellement...

Pouvez-vous m'aider à avancer sur ce problème svp?

Merci d'avance
A voir également:

2 réponses

Raymond PENTIER Messages postés 58388 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 avril 2024 17 089
23 mars 2009 à 03:59
Faire un tri double, par rapport à H et à T, et supprimer les dernières lignes
0
leplot Messages postés 191 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 13 août 2015 130
23 mars 2009 à 11:43
Bonjour

Voici un VBA pour répondre au problème
Sub Tri_Plusieurs_Colonnes()
Dim Feuille, Données, Ligne, NumLigne

Set Feuille = ActiveWorkbook.Sheets("Feuil1")
Set Données = Feuille.Range("A:T")
NumLigne = 1
Do
If NumLigne > 1 Then
If Not ((UCase(Données.Range("T" & NumLigne)) Like "*DEFINITION*" _
Or UCase(Données.Range("T" & NumLigne)) Like "*SIGNIFICATION*" _
Or UCase(Données.Range("T" & NumLigne)) Like "*SENS*") _
And UCase(Données.Range("H" & NumLigne)) Like "*MESURE*") Then
Données.Rows(NumLigne).EntireRow.Delete
Else
NumLigne = NumLigne + 1
End If
End If
Loop Until Données.Range("A" & NumLigne) = ""
End Sub



La première ligne est ignorée (titres)
Le code teste la présence d'au moins un des trois textes en T et de Mesure en H.
not ( (test1 ou test2 ou test 3) et test4)

Si la ligne ne répond pas au test elle est supprimée.
Si la ligne 10 est supprimée, la ligne suivante à tester sera de nouveau la 10 sinon c'est la 11.

Il faut changer le nom de la feuille dans le code.

LePlot
0