Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est
"zaza".
D'avance, merci!
Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est
"zaza".
D'avance, merci!
Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est
"zaza".
D'avance, merci!
Romain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Romain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Romain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problèmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problème
Romain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....
Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problèmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonctionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problèmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonctionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+
Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problème
Romain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....
Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonctionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problèmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la réponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant "zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, alors
peut-être est-ce du au fait que ma feuille contient environ 2000 lignes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la première
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonctionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problèmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la réponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant "zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, alors
peut-être est-ce du au fait que ma feuille contient environ 2000 lignes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la première
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")
Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonctionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+
Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problème
Romain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....
Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la réponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant "zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, alors
peut-être est-ce du au fait que ma feuille contient environ 2000 lignes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la première
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonctionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problèmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la ré ponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant "zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, alors
peut-être est-ce du au fait que ma feuille contient environ 2000 lignes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la première
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonction ne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fon ction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon probl èmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" e st "zaza".
D'avance, merci!
Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la ré ponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant "zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, alors
peut-être est-ce du au fait que ma feuille contient environ 2000 lignes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la première
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")
Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonction ne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+
Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fon ction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon probl ème
Romain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....
Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" e st "zaza".
D'avance, merci!
Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la ré ponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant "zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, alors
peut-être est-ce du au fait que ma feuille contient environ 2000 lignes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la première
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonction ne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fon ction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon probl èmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" e st "zaza".
D'avance, merci!
Je pense que ca tient au fait que tes formules calculent à chque fois
sur des bases nouvelles puisque tu supprimes des lignes et que donc les
références de comparaison evoluent.
En conséquence,
Dim c As Range
Application.Calculation = xlCalculationManual
Do
Set c = Columns(1).Find("zaza", , xlValues, xlWhole)
If c Is Nothing Then Exit Sub
c.EntireRow.Delete
Loop
Application.Calculation = xlCalculationAutomatic
devrait fonctionner
A+
XLnoob wrote:Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la réponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant "zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, alors
peut-être est-ce du au fait que ma feuille contient environ 2000 lignes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la première
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c > > > Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonctionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problèmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Je pense que ca tient au fait que tes formules calculent à chque fois
sur des bases nouvelles puisque tu supprimes des lignes et que donc les
références de comparaison evoluent.
En conséquence,
Dim c As Range
Application.Calculation = xlCalculationManual
Do
Set c = Columns(1).Find("zaza", , xlValues, xlWhole)
If c Is Nothing Then Exit Sub
c.EntireRow.Delete
Loop
Application.Calculation = xlCalculationAutomatic
devrait fonctionner
A+
XLnoob wrote:
Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la réponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant "zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, alors
peut-être est-ce du au fait que ma feuille contient environ 2000 lignes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la première
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")
Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c > > > Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonctionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+
Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problème
Romain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....
Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Je pense que ca tient au fait que tes formules calculent à chque fois
sur des bases nouvelles puisque tu supprimes des lignes et que donc les
références de comparaison evoluent.
En conséquence,
Dim c As Range
Application.Calculation = xlCalculationManual
Do
Set c = Columns(1).Find("zaza", , xlValues, xlWhole)
If c Is Nothing Then Exit Sub
c.EntireRow.Delete
Loop
Application.Calculation = xlCalculationAutomatic
devrait fonctionner
A+
XLnoob wrote:Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la réponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant "zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, alors
peut-être est-ce du au fait que ma feuille contient environ 2000 lignes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la première
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c > > > Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonctionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon problèmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".
D'avance, merci!
Oui, c'est magique, ca prend 3 secondes maintenant! :)
Mais ca a l'air de poser un autre problème que je trouve super bizarre :
dans ma colonne K, j'ai
±&C1&D1
²&C2&D2
etc.
Et là, mes valeurs étant pourtant différentes en {B1,C1,D1} et {B2, C2,D2},
en K2 (et K3, etc), j'obtiens excatment la même valeur qu'en K1 !!
Si je ferme mon classeur et que je le ré-ouvre, là ca redevient corre ct
(c'est à dire valeurs différentes en K1, K2, K3). Mais si je duplique de
nouveau la formule, disons en K22 ca recommence! C'est à, dire K23=K 22=K21.
Je soupconne que ca vienne du mode de calcul, mais je n'y connais rien...
SemiManual, Manual, Automatic??Je pense que ca tient au fait que tes formules calculent à chque fois
sur des bases nouvelles puisque tu supprimes des lignes et que donc les
références de comparaison evoluent.
En conséquence,
Dim c As Range
Application.Calculation = xlCalculationManual
Do
Set c = Columns(1).Find("zaza", , xlValues, xlWhole)
If c Is Nothing Then Exit Sub
c.EntireRow.Delete
Loop
Application.Calculation = xlCalculationAutomatic
devrait fonctionner
A+
XLnoob wrote:Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la réponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant " zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, a lors
peut-être est-ce du au fait que ma feuille contient environ 2000 li gnes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la premi ère
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonc tionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon pro blèmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne " A" est "zaza".
D'avance, merci!
Oui, c'est magique, ca prend 3 secondes maintenant! :)
Mais ca a l'air de poser un autre problème que je trouve super bizarre :
dans ma colonne K, j'ai
=B1&C1&D1
=B2&C2&D2
etc.
Et là, mes valeurs étant pourtant différentes en {B1,C1,D1} et {B2, C2,D2},
en K2 (et K3, etc), j'obtiens excatment la même valeur qu'en K1 !!
Si je ferme mon classeur et que je le ré-ouvre, là ca redevient corre ct
(c'est à dire valeurs différentes en K1, K2, K3). Mais si je duplique de
nouveau la formule, disons en K22 ca recommence! C'est à, dire K23=K 22=K21.
Je soupconne que ca vienne du mode de calcul, mais je n'y connais rien...
SemiManual, Manual, Automatic??
Je pense que ca tient au fait que tes formules calculent à chque fois
sur des bases nouvelles puisque tu supprimes des lignes et que donc les
références de comparaison evoluent.
En conséquence,
Dim c As Range
Application.Calculation = xlCalculationManual
Do
Set c = Columns(1).Find("zaza", , xlValues, xlWhole)
If c Is Nothing Then Exit Sub
c.EntireRow.Delete
Loop
Application.Calculation = xlCalculationAutomatic
devrait fonctionner
A+
XLnoob wrote:
Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la réponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant " zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, a lors
peut-être est-ce du au fait que ma feuille contient environ 2000 li gnes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la premi ère
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")
Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonc tionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+
Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon pro blème
Romain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....
Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne " A" est "zaza".
D'avance, merci!
Oui, c'est magique, ca prend 3 secondes maintenant! :)
Mais ca a l'air de poser un autre problème que je trouve super bizarre :
dans ma colonne K, j'ai
±&C1&D1
²&C2&D2
etc.
Et là, mes valeurs étant pourtant différentes en {B1,C1,D1} et {B2, C2,D2},
en K2 (et K3, etc), j'obtiens excatment la même valeur qu'en K1 !!
Si je ferme mon classeur et que je le ré-ouvre, là ca redevient corre ct
(c'est à dire valeurs différentes en K1, K2, K3). Mais si je duplique de
nouveau la formule, disons en K22 ca recommence! C'est à, dire K23=K 22=K21.
Je soupconne que ca vienne du mode de calcul, mais je n'y connais rien...
SemiManual, Manual, Automatic??Je pense que ca tient au fait que tes formules calculent à chque fois
sur des bases nouvelles puisque tu supprimes des lignes et que donc les
références de comparaison evoluent.
En conséquence,
Dim c As Range
Application.Calculation = xlCalculationManual
Do
Set c = Columns(1).Find("zaza", , xlValues, xlWhole)
If c Is Nothing Then Exit Sub
c.EntireRow.Delete
Loop
Application.Calculation = xlCalculationAutomatic
devrait fonctionner
A+
XLnoob wrote:Salut anonymousA,
et merci, car effectivement l'ajout de l'argument "xlValues" rend la réponse
de Daniel opérationnelle (j'ai pu apercevoir des lignes contenant " zaza"
disparaitre)
... sauf...
que la macro tourne depuis 15 minutes et elle a pas l'air de vouloir
s'arreter (!).
Je ne pense pas que le code soit particulièrement lourd pourtant, a lors
peut-être est-ce du au fait que ma feuille contient environ 2000 li gnes?
ps : le temps que j'écrive ce message, la macro s'est arrêtée!
Mais il me reste des lignes avec "zaza".
Hum, je pense que j'aurais du être plus exhaustif lors de la premi ère
formulation de ma question. En fait zaza représente un doublon, que je trouve
avec la formule suivante en collonne A:
=+SI(NB.SI($K$2:K2;K2)>1;"zaza";"")Bonjour,
pour la réponse de Daniel , il te suffit d'écrire Set c =
Columns(1).Find("zaza", , xlValues, xlWhole)
au lieu de
Set c = Columns(1).Find("zaza", , , xlWhole)
et ca roulera.
Pour la solution de Romain, elle est un peu alambiquée et ne fonc tionne
pas p.e si la valeur zaza est sur la 1ere ligne car alors Rows(0)
n'existe pas. Je ne prétends pas qu'on ne puisse pas la faire
fonctionner mais j'ai peu cherché, je l'avoue.
De toute façon, dans ce genre d'affaire impliquant delete, il vaut
toujours mieux partir du bas que du haut. ca evite bien des soucis.
A+Merci à tous les 2 d'avoir pris le temps de répondre,
malheureusement, pour l'instant ca n'a pas l'air de fonctionner.
Peut-être est-ce du au fait que "zaza" est généré par une fonction???
(ex: SI(C2>C3;"zaza";"blablabla")
J'ai pourtant essayé d'adapter vos codes respectifs à mon pro blèmeRomain, la macro se bloque à la ligne:
While Not (.Range("A1").Offset(i).Value = "")
Je vais ré-essayer....Bonjour,
Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne " A" est "zaza".
D'avance, merci!