Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VB] supprimer des lignes contenant un "X"

6 réponses
Avatar
Jean-François LEGRAS
Bonjour à tous,


J'ai un tableau tout simple avec des croix "X" dans la colonne K


Je souhaiterais avoir une macro qui supprime les lignes contenant une croix


J'ai essayé ces codes :

Sub comptes_supprimés()


Dim d As Range
For Each d In Range("K2", Range("K65535").End(xlUp))
If d = "X" Then
d.EntireRow.Delete
End If
Next d

End Sub



Malheureusement le code n'enlève pas toutes les lignes concernées mais
seulement quelques unes, je ne comprends pas pourquoi.


Auriez-vous s'il vous plait l'explication et la solution à mon problème ?


Merci beaucoup d'avance !!!!

Slts

JF

6 réponses

Avatar
Jacky
Bonsoir,
Auriez-vous s'il vous plait l'explication et la solution à mon problème ?
Il faut commencer par la fin.

'----------
Sub comptes_supprimés()
For i = Range("K65535").End(xlUp).Row To 2 Step -1
If UCase(Cells(i, 11)) = "X" Then Rows(i).Delete
Next
End Sub
'----------------

--
Salutations
JJ


"Jean-François LEGRAS" a écrit dans le message de news:
%
Bonjour à tous,


J'ai un tableau tout simple avec des croix "X" dans la colonne K


Je souhaiterais avoir une macro qui supprime les lignes contenant une
croix


J'ai essayé ces codes :

Sub comptes_supprimés()


Dim d As Range
For Each d In Range("K2", Range("K65535").End(xlUp))
If d = "X" Then
d.EntireRow.Delete
End If
Next d

End Sub



Malheureusement le code n'enlève pas toutes les lignes concernées mais
seulement quelques unes, je ne comprends pas pourquoi.


Auriez-vous s'il vous plait l'explication et la solution à mon problème ?


Merci beaucoup d'avance !!!!

Slts

JF



Avatar
Jean-François LEGRAS
Merci beaucoup Jacky !!

Bon j'ai pas vraiment compris le code, mais de toute façon je crois qu'il v
falloir que j'amchète un bon bouquin sur VB...


Slts

JF


"Jacky" a écrit dans le message de news:

Bonsoir,
Auriez-vous s'il vous plait l'explication et la solution à mon problème ?
Il faut commencer par la fin.

'----------
Sub comptes_supprimés()
For i = Range("K65535").End(xlUp).Row To 2 Step -1
If UCase(Cells(i, 11)) = "X" Then Rows(i).Delete
Next
End Sub
'----------------

--
Salutations
JJ


"Jean-François LEGRAS" a écrit dans le message de
news: %
Bonjour à tous,


J'ai un tableau tout simple avec des croix "X" dans la colonne K


Je souhaiterais avoir une macro qui supprime les lignes contenant une
croix


J'ai essayé ces codes :

Sub comptes_supprimés()


Dim d As Range
For Each d In Range("K2", Range("K65535").End(xlUp))
If d = "X" Then
d.EntireRow.Delete
End If
Next d

End Sub



Malheureusement le code n'enlève pas toutes les lignes concernées mais
seulement quelques unes, je ne comprends pas pourquoi.


Auriez-vous s'il vous plait l'explication et la solution à mon problème ?


Merci beaucoup d'avance !!!!

Slts

JF







Avatar
Jacky
Re..
Auriez-vous s'il vous plait l'explication ...
Je vais essayer ;o)

Pour l'exemple, nous admettrons qu'il y a un"X" en K3 et K4
dans cette boucle:
For Each d In Range("K2", Range("K65535").End(xlUp))
La vérification commence par la ligne 2 et se termine en dernière ligne
remplie de la colonne K
1 er boucle vérif. de K2...Ras
2 ème boucle Vérif. de K3...miracle...il y a un "X", donc suppression de la
ligne 3 (k3)
Et c'est bien ici que le cela se passe, car la ligne 4 devient à ce moment
la ligne 3
et comme la boucle l'ignore, il passe en ligne 4 et ignore la ligne 3
contenant un "X"(celui de la ligne 4).

Ce qui n'est pas le cas quand on commence par la dernière ligne, toujours
dans cet exemple
X.n boucle pour arriver en ligne 4,...il y a un "X", donc suppression de la
ligne 4 (K4)
C'est bien la ligne 5 qui devient la ligne 4 et la boucle continue ...ligne
3 et trouve bel et bien un "X"

Voila, je ne sais pas si cela et bien explicite, les explications n'étant
pas mon fort.

--
Salutations
JJ


"Jean-François LEGRAS" a écrit dans le message de news:
%
Bonjour à tous,


J'ai un tableau tout simple avec des croix "X" dans la colonne K


Je souhaiterais avoir une macro qui supprime les lignes contenant une
croix


J'ai essayé ces codes :

Sub comptes_supprimés()


Dim d As Range
For Each d In Range("K2", Range("K65535").End(xlUp))
If d = "X" Then
d.EntireRow.Delete
End If
Next d

End Sub



Malheureusement le code n'enlève pas toutes les lignes concernées mais
seulement quelques unes, je ne comprends pas pourquoi.


Auriez-vous s'il vous plait l'explication et la solution à mon problème ?


Merci beaucoup d'avance !!!!

Slts

JF



Avatar
Mgr T. Banni
bonsoir jean-françois
essaie peut-être cela

Sub comptes_supprimés()
derlg = Range("K65536").End(xlUp).Row
For i = derlg To 2 Step -1
If UCase(Range("k" & i)) = "X" Then Range("k" & i).EntireRow.Delete 'Ucase
te permet d'avoir aussi bien un "x" minuscule qu'un "X" majuscule
Next
End Sub

HTH
Mgr T. Banni

"Jean-François LEGRAS" a écrit dans le message de news:
%
Bonjour à tous,


J'ai un tableau tout simple avec des croix "X" dans la colonne K


Je souhaiterais avoir une macro qui supprime les lignes contenant une
croix


J'ai essayé ces codes :

Sub comptes_supprimés()


Dim d As Range
For Each d In Range("K2", Range("K65535").End(xlUp))
If d = "X" Then
d.EntireRow.Delete
End If
Next d

End Sub



Malheureusement le code n'enlève pas toutes les lignes concernées mais
seulement quelques unes, je ne comprends pas pourquoi.


Auriez-vous s'il vous plait l'explication et la solution à mon problème ?


Merci beaucoup d'avance !!!!

Slts

JF



Avatar
Jacky
Bonjour Monseigneur,

Dans cette boucle:
For i = derlg To 2 Step -1
If UCase(Range("k" & i)) = "X" Then Range("k" & i).EntireRow.Delete Next
Le tableau étant des paroissiens.

Combien en reste t-il dans la liste à la fin de la boucle pour confesser les
hôtesses d'accueil en pays auvergnat .

--
Salutations
JJ


"Mgr T. Banni" a écrit dans le message de news:

bonsoir jean-françois
essaie peut-être cela

Sub comptes_supprimés()
derlg = Range("K65536").End(xlUp).Row
For i = derlg To 2 Step -1
If UCase(Range("k" & i)) = "X" Then Range("k" & i).EntireRow.Delete
'Ucase te permet d'avoir aussi bien un "x" minuscule qu'un "X" majuscule
Next
End Sub

HTH
Mgr T. Banni

"Jean-François LEGRAS" a écrit dans le message de
news: %
Bonjour à tous,


J'ai un tableau tout simple avec des croix "X" dans la colonne K


Je souhaiterais avoir une macro qui supprime les lignes contenant une
croix


J'ai essayé ces codes :

Sub comptes_supprimés()


Dim d As Range
For Each d In Range("K2", Range("K65535").End(xlUp))
If d = "X" Then
d.EntireRow.Delete
End If
Next d

End Sub



Malheureusement le code n'enlève pas toutes les lignes concernées mais
seulement quelques unes, je ne comprends pas pourquoi.


Auriez-vous s'il vous plait l'explication et la solution à mon problème ?


Merci beaucoup d'avance !!!!

Slts

JF







Avatar
Mgr Banni
une petite huitaine, mon fils
Mgr T.B.

"Jacky" a écrit dans le message de news:
%
Bonjour Monseigneur,

Dans cette boucle:
For i = derlg To 2 Step -1
If UCase(Range("k" & i)) = "X" Then Range("k" & i).EntireRow.Delete Next
Le tableau étant des paroissiens.

Combien en reste t-il dans la liste à la fin de la boucle pour confesser
les hôtesses d'accueil en pays auvergnat .

--
Salutations
JJ


"Mgr T. Banni" a écrit dans le message de news:

bonsoir jean-françois
essaie peut-être cela

Sub comptes_supprimés()
derlg = Range("K65536").End(xlUp).Row
For i = derlg To 2 Step -1
If UCase(Range("k" & i)) = "X" Then Range("k" & i).EntireRow.Delete
'Ucase te permet d'avoir aussi bien un "x" minuscule qu'un "X" majuscule
Next
End Sub

HTH
Mgr T. Banni

"Jean-François LEGRAS" a écrit dans le message de
news: %
Bonjour à tous,


J'ai un tableau tout simple avec des croix "X" dans la colonne K


Je souhaiterais avoir une macro qui supprime les lignes contenant une
croix


J'ai essayé ces codes :

Sub comptes_supprimés()


Dim d As Range
For Each d In Range("K2", Range("K65535").End(xlUp))
If d = "X" Then
d.EntireRow.Delete
End If
Next d

End Sub



Malheureusement le code n'enlève pas toutes les lignes concernées mais
seulement quelques unes, je ne comprends pas pourquoi.


Auriez-vous s'il vous plait l'explication et la solution à mon problème
?


Merci beaucoup d'avance !!!!

Slts

JF