Trie tableau excel fct contenu cellules
Seb
-
leplot Messages postés 193 Statut Membre -
leplot Messages postés 193 Statut Membre -
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
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:
- Trie tableau excel fct contenu cellules
- Trier un tableau excel - Guide
- Tableau word - Guide
- Fusionner deux cellules excel en gardant le contenu - Guide
- Imprimer un tableau excel - Guide
- Liste déroulante excel - Guide
2 réponses
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
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