suppression de ligne avec un critère

Le
elli6258
Bonjour à tous,
Je viens une nouvelle fois chercher des infos.

Dans un tableau je souhaite supprimer les lignes qui ne contiennent pas un
mot que j'ai mis dans une liste déroulante.
Dans un premier j'essaie de faire fonctionner ma macro avec l'exemple
ci-dessous. Certaines lignes sont bien supprimé mais quelques une reste.
A noté que la cellule peut contenir plusieurs séparé pa un ","

exemple: "ell,epp,ecc"

Merci d'avance
Michel

Dim celu As Range
Dim eq As Range
Set eq = Range("U1:U" & lignevid1)
For Each celu In eq
If celu.Value <> "*ell*" Then
Rows(Selection.Row).Delete shift:=xlUp
End If
Next celu
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #18023231
Salut à toi

A la place de la ligne :

If celu.Value <> "*ell*" Then

je mettrais

If celu.Value like "*ell*" = False Then

Peut être du mieux
Dis moi !!!
lSteph
Le #18024521
Bonjour,

(je ne vois pas où tu as défini lignevid1 mais je présume qu e c'est
fait corretement par ailleurs).
Il me semble que le pb est qu'il faut remonter pour une boucle qui
supprime , sinon on saute!

Sub supsaufell()
Dim eq As Range, lignevid1 As Long, i As Long
lignevid1 = [U65536].End(xlUp)(2).Row
Set eq = Range("U1:U" & lignevid1)
For i = eq.Cells.Count To 1 Step -1
With eq.Cells(i)
If Not .Text Like "*ell*" Then .EntireRow.Delete
End With
Next
Set eq = Nothing
End Sub

'lSteph


elli6258 a écrit :
Bonjour � tous,
Je viens une nouvelle fois chercher des infos.

Dans un tableau je souhaite supprimer les lignes qui ne contiennent pas u n
mot que j'ai mis dans une liste d�roulante.
Dans un premier j'essaie de faire fonctionner ma macro avec l'exemple
ci-dessous. Certaines lignes sont bien supprim� mais quelques une reste.
A not� que la cellule peut contenir plusieurs s�parï¿ ½ pa un ","

exemple: "ell,epp,ecc"

Merci d'avance
Michel

Dim celu As Range
Dim eq As Range
Set eq = Range("U1:U" & lignevid1)
For Each celu In eq
If celu.Value <> "*ell*" Then
Rows(Selection.Row).Delete shift:=xlUp
End If
Next celu


elli6258
Le #18044411
Bonjour,
Désolé de ne répondre que si tard, mais j'ai été pris par ailleurs.
Merci pour vos propositions.
mais cela ne fonctionne pas.
Dans la version de FFO, certaine ligne ne sont pas supprimées.
Dans la version de Steph, je me retrouve avec une feuille blanche.
Cordialement




"lSteph"
Bonjour,

(je ne vois pas où tu as défini lignevid1 mais je présume que c'est
fait corretement par ailleurs).
Il me semble que le pb est qu'il faut remonter pour une boucle qui
supprime , sinon on saute!

Sub supsaufell()
Dim eq As Range, lignevid1 As Long, i As Long
lignevid1 = [U65536].End(xlUp)(2).Row
Set eq = Range("U1:U" & lignevid1)
For i = eq.Cells.Count To 1 Step -1
With eq.Cells(i)
If Not .Text Like "*ell*" Then .EntireRow.Delete
End With
Next
Set eq = Nothing
End Sub

'lSteph


elli6258 a écrit :
Bonjour ? tous,
Je viens une nouvelle fois chercher des infos.

Dans un tableau je souhaite supprimer les lignes qui ne contiennent pas un
mot que j'ai mis dans une liste d?roulante.
Dans un premier j'essaie de faire fonctionner ma macro avec l'exemple
ci-dessous. Certaines lignes sont bien supprim? mais quelques une reste.
A not? que la cellule peut contenir plusieurs s?par? pa un ","

exemple: "ell,epp,ecc"

Merci d'avance
Michel

Dim celu As Range
Dim eq As Range
Set eq = Range("U1:U" & lignevid1)
For Each celu In eq
If celu.Value <> "*ell*" Then
Rows(Selection.Row).Delete shift:=xlUp
End If
Next celu


lSteph
Le #18045121
Bonjour,
si dans ta colonne U il n'y a pas ell, forcément la ligne saute donc
rien ne reste,
c'est ce que tu demandais visiblement selon ton premier code!

Cordialement

--
lSteph

On 4 déc, 12:54, "elli6258"
Bonjour,
Désolé de ne répondre que si tard, mais j'ai été pris par aille urs.
Merci pour vos propositions.
mais cela ne fonctionne pas.
Dans la version de FFO, certaine ligne ne sont pas supprimées.
Dans la version de Steph, je me retrouve avec une feuille blanche.
Cordialement

"lSteph"
Bonjour,

(je ne vois pas où tu as défini lignevid1 mais je présume que c'est
fait corretement par ailleurs).
Il me semble que le pb est qu'il faut remonter pour une boucle qui
supprime , sinon on saute!

Sub supsaufell()
Dim eq As Range, lignevid1 As Long, i As Long
lignevid1 = [U65536].End(xlUp)(2).Row
    Set eq = Range("U1:U" & lignevid1)
For i = eq.Cells.Count To 1 Step -1
With eq.Cells(i)
If Not .Text Like "*ell*" Then .EntireRow.Delete
End With
Next
Set eq = Nothing
End Sub

'lSteph

elli6258 a écrit :

> Bonjour ? tous,
> Je viens une nouvelle fois chercher des infos.

> Dans un tableau je souhaite supprimer les lignes qui ne contiennent pas un
> mot que j'ai mis dans une liste d?roulante.
> Dans un premier j'essaie de faire fonctionner ma macro avec l'exemple
> ci-dessous. Certaines lignes sont bien supprim? mais quelques une reste .
> A not? que la cellule peut contenir plusieurs s?par? pa un ","

> exemple: "ell,epp,ecc"

> Merci d'avance
> Michel

>     Dim celu As Range
>     Dim eq As Range
>     Set eq = Range("U1:U" & lignevid1)
>     For Each celu In eq
>     If celu.Value <> "*ell*" Then
>     Rows(Selection.Row).Delete shift:=xlUp
>     End If
>     Next celu


FFO
Le #18045111
Rebonjour à toi

Si certaines lignes ne sont pas supprimmées c'est qu'elle ne répondent pas
au critère pour l'être
Vérifies les blancs éventuels (espace ou autres)
N'y a t'il pas un problème de casse (minuscule, majuscule) auquel cas
utilise plutôt :

If LCase(celu.Value) like "*ell*" = False Then

Sinon envoi ton fichier par le biais de ce site :


http://www.cijoint.fr/index.php

Pour qu'on l'étudie

Transmets nous le lien
elli6258
Le #18048951
Bonsoir,
J'ai trouvé une macro que j'ai adapté et cela donne ceci :

For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1
Step -1
If Cells(lin, 20) <> "ell" And Left(Cells(lin, 1), 2) = "OU" Then
Rows(lin).Delete Shift:=xlUp
Next lin

merci encore à vous deux .
Michel



"FFO"
Rebonjour à toi

Si certaines lignes ne sont pas supprimmées c'est qu'elle ne répondent pas
au critère pour l'être
Vérifies les blancs éventuels (espace ou autres)
N'y a t'il pas un problème de casse (minuscule, majuscule) auquel cas
utilise plutôt :

If LCase(celu.Value) like "*ell*" = False Then

Sinon envoi ton fichier par le biais de ce site :


http://www.cijoint.fr/index.php

Pour qu'on l'étudie

Transmets nous le lien





Publicité
Poster une réponse
Anonyme