OVH Cloud OVH Cloud

macro supp

16 réponses
Avatar
zimou
Bonjour,
je suis =E0 la recherche d'une macro pour supprimer toutes les lignes
qui ne conti=E8nnent pas un crit=E8re exp; je veux suuprimer toutes les
lignes dont la colone D< 900
merci

6 réponses

1 2
Avatar
Philippe.R
Bonjour Zimou,
Ne tiens compte que de la dernière version (qui n'a pas de raison de boucler
à l'infini)

Sub suplignesB()
'MPFE le 12/08/2007
'Supprime toutes les lignes de la feuille active si le contenu de la colonne
' D en regard est numérique et <900
'Suppose que la colonne A soit la plus longue
Dim zLiG As Long
zLiG = Range("a2345").End(xlUp).Row
For i = zLiG To 1 Step -1
If IsNumeric(Cells(i, 4).Value) And Cells(i, 4).Value < 900 Then
Cells(i, 4).EntireRow.Delete
End If
Next i
End Sub

Testé sous XL2002
Si tu continues de rencontrer des problèmes, dépose sur cjoint une copie en
format xl2003 représentative de ton classeur.
Qu'on puisse comprendre ce qui ne va pas (donne quelques précision à
l'occasion sur ce qui te fait dire "ça marche pas !")
--
Avec plaisir
Philippe.R
"zimou" a écrit dans le message de
news:
On 12 août, 22:40, "Philippe.R" <AS_rauphil_at_wanadoo.fr> wrote:
Avant coucher, quand même juste préciser qu'on peut comprendre qu'une
cellule vide a une valeur inférieure à 900
Et bonne nuit( Zette ) à toi aussi
;o))))
--
Avec plaisir
Philippe.R
"Trirème" a écrit dans le message
denews:



OK Chef, OK !
(c'était encore directement dans le message pour le 2ème)
Après test :

Sub suplignesB()
'MPFE le 12/08/2007
'Supprime toutes les lignes de la feuille active si le contenu de la
colonne
' D en regard est numérique et <900
'Suppose que la colonne A soit la plus longue
Dim zLiG As Long
zLiG = Range("a2345").End(xlUp).Row
For i = zLiG To 1 Step -1
If IsNumeric(Cells(i, 4).Value) And Cells(i, 4).Value < 900 Then
Cells(i, 4).EntireRow.Delete
End If
Next i
End Sub

J'ai bon, Chef ?


Ben elle supprime aussi les lignes si la cellules Dx est vide. Il
faudrait
voir avec zimou ce qu'il y a lieu de faire mais il ne donne pas signe de
vie. Ça va zimou ?
Sinon :
If Not IsEmpty(Cells(i, 4)) And IsNumeric(Cells(i, 4).Value) And
Cells(i,
4).Value < 900 Then

Allez, maintenant file dans ta chambre, c'est bientôt l'heure des hommes
en nuisette ;-)- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


bonjour et merci pour l'aide,
j'ai copier coller les codes telquels, mais le suis désolé de dire que
sa marche pas, en plus lorsque je redémarre ma feuille de calcule
excel "2007" m'affiche un méssage "présence d'une boucle circulaire
etc....." ou quelque chose comme ça.
merci



Avatar
zimou
On 13 août, 17:13, "Philippe.R" <AS_rauphil_at_wanadoo.fr> wrote:
Bonjour Zimou,
Ne tiens compte que de la dernière version (qui n'a pas de raison de bo ucler
à l'infini)

Sub suplignesB()
'MPFE le 12/08/2007
'Supprime toutes les lignes de la feuille active si le contenu de la colo nne
' D en regard est numérique et <900
'Suppose que la colonne A soit la plus longue
Dim zLiG As Long
zLiG = Range("a2345").End(xlUp).Row
For i = zLiG To 1 Step -1
If IsNumeric(Cells(i, 4).Value) And Cells(i, 4).Value < 900 Then
Cells(i, 4).EntireRow.Delete
End If
Next i
End Sub

Testé sous XL2002
Si tu continues de rencontrer des problèmes, dépose sur cjoint une co pie en
format xl2003 représentative de ton classeur.
Qu'on puisse comprendre ce qui ne va pas (donne quelques précision à
l'occasion sur ce qui te fait dire "ça marche pas !")
--
Avec plaisir
Philippe.R
"zimou" a écrit dans le message denews:118701
On 12 août, 22:40, "Philippe.R" <AS_rauphil_at_wanadoo.fr> wrote:





Avant coucher, quand même juste préciser qu'on peut comprendre qu'u ne
cellule vide a une valeur inférieure à 900
Et bonne nuit( Zette ) à toi aussi
;o))))
--
Avec plaisir
Philippe.R
"Trirème" a écrit dans le message
denews:

OK Chef, OK !
(c'était encore directement dans le message pour le 2ème)
Après test :

Sub suplignesB()
'MPFE le 12/08/2007
'Supprime toutes les lignes de la feuille active si le contenu de la
colonne
' D en regard est numérique et <900
'Suppose que la colonne A soit la plus longue
Dim zLiG As Long
zLiG = Range("a2345").End(xlUp).Row
For i = zLiG To 1 Step -1
If IsNumeric(Cells(i, 4).Value) And Cells(i, 4).Value < 900 Then
Cells(i, 4).EntireRow.Delete
End If
Next i
End Sub

J'ai bon, Chef ?


Ben elle supprime aussi les lignes si la cellules Dx est vide. Il
faudrait
voir avec zimou ce qu'il y a lieu de faire mais il ne donne pas signe de
vie. Ça va zimou ?
Sinon :
If Not IsEmpty(Cells(i, 4)) And IsNumeric(Cells(i, 4).Value) And
Cells(i,
4).Value < 900 Then

Allez, maintenant file dans ta chambre, c'est bientôt l'heure des h ommes
en nuisette ;-)- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


bonjour et merci pour l'aide,
j'ai copier coller les codes telquels, mais le suis désolé de dire que
sa marche pas, en plus lorsque je redémarre ma feuille de calcule
excel "2007" m'affiche un méssage "présence d'une boucle circulaire
etc....." ou quelque chose comme ça.
merci- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Bonjour Philip,
finalement le programme fonctionne sur mon ordinateur de maison, mais
pas sur mon ordinateur portable.
Merci




Avatar
Trirème
zLiG = Range("a2345").End(xlUp).Row





Bonjour Philip,
finalement le programme fonctionne sur mon ordinateur de maison, mais
pas sur mon ordinateur portable.


Ça veut dire quoi précisément "Ça fonctionne pas" ? Rien du tout, un peu... ?
Est-ce que tu le fais fonctionner sur les mêmes données ?
As-tu plus de 2345 lignes ? Si c'est le cas change la valeur
zLiG = Range("a2345").End(xlUp).Row par une valeur plus grande :
zLiG = Range("a655365").End(xlUp).Row

Cordialement,
Trirème





Avatar
Philippe.R
Bonsoir Trirème,

"Range("a655365")."
là, eh ben mazette ! tant que ça (sur la version 2007 j'imagine)
;o))))

Et toi, Zimou, donne des détails sur les dysfonctionnements, cre vain diu !
;o)))
--
Avec plaisir
Philippe.R
"Trirème" a écrit dans le message de
news:
zLiG = Range("a2345").End(xlUp).Row





Bonjour Philip,
finalement le programme fonctionne sur mon ordinateur de maison, mais
pas sur mon ordinateur portable.


Ça veut dire quoi précisément "Ça fonctionne pas" ? Rien du tout, un
peu... ?
Est-ce que tu le fais fonctionner sur les mêmes données ?
As-tu plus de 2345 lignes ? Si c'est le cas change la valeur
zLiG = Range("a2345").End(xlUp).Row par une valeur plus grande :
zLiG = Range("a655365").End(xlUp).Row

Cordialement,
Trirème







Avatar
Trirème
"Range("a655365")."
là, eh ben mazette ! tant que ça (sur la version 2007 j'imagine)
;o))))


C'est un bonus pour les soldes :-P

Y en a un p'tit peu plus... Je l'mets quand même ?

Avatar
Philippe.R
Allez, va, quand il y a de la gène, il n'y a pas de plaisir !
;o))))

--
Avec plaisir
Philippe.R
"Trirème" a écrit dans le message de
news:
"Range("a655365")."
là, eh ben mazette ! tant que ça (sur la version 2007 j'imagine)
;o))))


C'est un bonus pour les soldes :-P

Y en a un p'tit peu plus... Je l'mets quand même ?



1 2