Effacer cellules suivant critére
Le
glop

Bonjour,
Je travaille sur une feuille Excel comprenant, environ, 4500 lignes et
une cinquantaine de colonnes. Certaines cellules sont destinées à une
saisie plus ou moins encadrée (données validation) d'autres sont
calculées avec des élèments de cette meme feuille et d'autres. Toutes
possédent une mise en forma particulière (MEFC, bordures.). Les
cellules de saisie encadrée ne sont pas cotigues (séparées par des
cellules contenant des formules).
Je peux donc saisir directement des informations dans cette feuille
mais je voudrais aussi avoir la possibilité de mise à jour en important
des données depuis d'autres feuilles possédant la meme structure (avec
moins de lignes).
Mon problème consiste à effacer, dans la feuille principale, les
données pouvant etre saisies répondant à un certain critére (une
vingtaine de critéres différents de la forme DRA ou LAV toujours situés
en colonne A) tout en conservant la structure du fichier (nb lignes,
MEFC, formules, calculs), puis appliquer un tri pour afficher ma
feuille dans un certain ordre.
Si quelqu'un a une idée, merci.
Je travaille sur une feuille Excel comprenant, environ, 4500 lignes et
une cinquantaine de colonnes. Certaines cellules sont destinées à une
saisie plus ou moins encadrée (données validation) d'autres sont
calculées avec des élèments de cette meme feuille et d'autres. Toutes
possédent une mise en forma particulière (MEFC, bordures.). Les
cellules de saisie encadrée ne sont pas cotigues (séparées par des
cellules contenant des formules).
Je peux donc saisir directement des informations dans cette feuille
mais je voudrais aussi avoir la possibilité de mise à jour en important
des données depuis d'autres feuilles possédant la meme structure (avec
moins de lignes).
Mon problème consiste à effacer, dans la feuille principale, les
données pouvant etre saisies répondant à un certain critére (une
vingtaine de critéres différents de la forme DRA ou LAV toujours situés
en colonne A) tout en conservant la structure du fichier (nb lignes,
MEFC, formules, calculs), puis appliquer un tri pour afficher ma
feuille dans un certain ordre.
Si quelqu'un a une idée, merci.
Cela reviendrait-il à effacer toute la ligne (moins la colonne A) dont la
cellule en colonne A contient les mots "DRA" ou "LAV"?
En effaçant uniquement le contenu, je crois que l'on garde la mise en forme.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"glop" a écrit dans le message de groupe de discussion :
k4eg9a$slo$
Bonjour,
Je travaille sur une feuille Excel comprenant, environ, 4500 lignes et
une cinquantaine de colonnes. Certaines cellules sont destinées à une
saisie plus ou moins encadrée (données validation) d'autres sont
calculées avec des élèments de cette meme feuille et d'autres. Toutes
possédent une mise en forma particulière (MEFC, bordures....). Les
cellules de saisie encadrée ne sont pas cotigues (séparées par des
cellules contenant des formules).
Je peux donc saisir directement des informations dans cette feuille
mais je voudrais aussi avoir la possibilité de mise à jour en important
des données depuis d'autres feuilles possédant la meme structure (avec
moins de lignes).
Mon problème consiste à effacer, dans la feuille principale, les
données pouvant etre saisies répondant à un certain critére (une
vingtaine de critéres différents de la forme DRA ou LAV toujours situés
en colonne A) tout en conservant la structure du fichier (nb lignes,
MEFC, formules, calculs...), puis appliquer un tri pour afficher ma
feuille dans un certain ordre.
Si quelqu'un a une idée, merci.
Pas tout à fait, je souhaite éffacer toutes les valeurs pouvant etre
saisies dans les lignes (y compris celles de la colonne A) qui
répondent à une condition "DRA" ou "LAV"... en col A) mais qui conserve
toutes mes options de mises en forme et les formules dans certaines
cellules. Par ailleurs de la manière dont est construit cette feuille
(pas trés futée au demeurant :-(, je ne peux pas supprimer de lignes
(il y a des données qui disparaitraient...).
Jacquouille a formulé la demande :
En fonction de ce que je t'ai présenté, à savoir effacer le contenu de toute
la ligne MOINS la col A si la cel en A est = à DRA ou LAV...
Effacer le contenu laisse la cel telle quelle, tandis que supprimer, ben il
la supprimera avec comme conséquence que toutes les lignes suivantes
remonteront d'un cran.
Donc, on part de "Effacer le contenu"
-------------------------
derl = [A65536].End(3).Row
For each c in range ("A2:A"&derL)
if [c]="DRA" or [c]="LAV" then
Rows(c).ClearContents
end if
next
-------------------------------
Attention que en effaçant le contenu de la cel en colA, tu n' y auras plus
tes repères DRA ou LAV ....
Tu peux tester sur une copie de ton fichier....
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"glop" a écrit dans le message de groupe de discussion :
k4epmd$n4a$
Merci de me répondre
Pas tout à fait, je souhaite éffacer toutes les valeurs pouvant etre
saisies dans les lignes (y compris celles de la colonne A) qui
répondent à une condition "DRA" ou "LAV"... en col A) mais qui conserve
toutes mes options de mises en forme et les formules dans certaines
cellules. Par ailleurs de la manière dont est construit cette feuille
(pas trés futée au demeurant :-(, je ne peux pas supprimer de lignes
(il y a des données qui disparaitraient...).
Jacquouille a formulé la demande :
Je ne peux tester cette macro. A l'exécution apparait l'erreur
d'éxecution 13 : Incompatibilité de type. L'instruction en question est :
Rows(c).ClearContents
J'utilise Excel 2003 j'ai testé avec Application.ClearContents, meme
résultat.
Merci.
Jacquouille a exprimé avec précision :
Juste une petite inversion ..... due au grand breton que je ne pratique pas
Attention à la casse des mots entre " " (majuscule ou non)
-----------------------
Sub effacer_ligne()
derl = [A65536].End(3).Row
For Each C In Range("A2:A" & derl)
If [C] = "DRA" Or [C] = "LAV" Then
C.Rows.ClearContents
End If
Next
End Sub
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"glop" a écrit dans le message de groupe de discussion :
k4f2ek$j2u$
Bonsoir,
Je ne peux tester cette macro. A l'exécution apparait l'erreur
d'éxecution 13 : Incompatibilité de type. L'instruction en question est :
Rows(c).ClearContents
J'utilise Excel 2003 j'ai testé avec Application.ClearContents, meme
résultat.
Merci.
Jacquouille a exprimé avec précision :
S'il s"agit de supprimer le contenu de toute la ligne selon les critères
il faudra remplacer cette ligne
par
Rows(c.Row .clearContents
ou
c.EntireRow.ClearContents
--
Salutations
JJ
"glop"
Il manque la parenthèse fermante
Rows(c.Row) .clearContents
--
Salutations
JJ
"Jacky"
Jacky a émis l'idée suivante :
Votre honneur consentirait-elle à accepter cette solution? -))
C.Rows.ClearContents ...... qui fonctionne chez moi.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Jacky" a écrit dans le message de groupe de discussion :
506b1789$0$23431$
Oups ! erreur de copier / coller
Il manque la parenthèse fermante
Rows(c.Row) .clearContents
--
Salutations
JJ
"Jacky" k4f4ep$jf1$
C'est trop Jacques , c'est trop...;o)))
Ben non , sauf si tu te contentes d'effacer UNIQUEMENT les cellules de la colonne A
Dans ce cas "C.Rows" dans la boucle est l'equivalent de:
A1
A2
-----
Ax
Tandis que
Rows(c.Row)
OU
c.EntireRow
Prendra la ligne entière, et sera l'équivalent de:
Rows("1:1")
Rows("2:2")
----
Rows("x:x")
--
Salutations
JJ
"Jacquouille" 506c0928$0$3122$