[VB] supprimer des lignes contenant un "X"

Le
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
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
Jacky
Le #6889511
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" %
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



Jean-François LEGRAS
Le #6889481
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"
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" 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







Jacky
Le #6889471
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" %
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



Mgr T. Banni
Le #6889461
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" %
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



Jacky
Le #6892271
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" 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







Mgr Banni
Le #6914041
une petite huitaine, mon fils
Mgr T.B.

"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" 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











Publicité
Poster une réponse
Anonyme