[macro excel] suppression de ligne sous condi
Résolu/Fermé
JOLARITALE
Messages postés
144
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
10 décembre 2014
-
5 juil. 2008 à 14:21
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 - 11 juil. 2008 à 07:56
JOLARITALE Messages postés 144 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 10 décembre 2014 - 11 juil. 2008 à 07:56
A voir également:
- [macro excel] suppression de ligne sous condi
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Forcer suppression fichier - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule excel - Guide
12 réponses
m@rina
Messages postés
19855
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
29 mars 2024
11 258
5 juil. 2008 à 16:51
5 juil. 2008 à 16:51
Bonjour
Voici une petite macro qui supprime la ligne entière si la cellule testé renvoie une erreur #N/A (remplace "ma feuille" par le nom de ta feuille ;))
Sub supprime()
For Each c In Worksheets("ma feuille").Range("C:C")
If IsError(c.Value) Then
If c.Value = CVErr(xlErrNA) Then
c.EntireRow.Delete
End If
End If
Next c
End Sub
Voici une petite macro qui supprime la ligne entière si la cellule testé renvoie une erreur #N/A (remplace "ma feuille" par le nom de ta feuille ;))
Sub supprime()
For Each c In Worksheets("ma feuille").Range("C:C")
If IsError(c.Value) Then
If c.Value = CVErr(xlErrNA) Then
c.EntireRow.Delete
End If
End If
Next c
End Sub
m@rina
Messages postés
19855
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
29 mars 2024
11 258
7 juil. 2008 à 13:50
7 juil. 2008 à 13:50
Je suppose que tu l'auras corrigé toi même... sinon, tu remplaces
And Range("E" & i).Value = "" Then
par :
And Range("E" & i).Value <> "" Then
m@rina
And Range("E" & i).Value = "" Then
par :
And Range("E" & i).Value <> "" Then
m@rina
JOLARITALE
Messages postés
144
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
10 décembre 2014
4
7 juil. 2008 à 11:32
7 juil. 2008 à 11:32
je viens de rééssayé sur un autre classeur
ca marche presque
sur une colonne de 10 #N/A il m'en supprime 5 puis apres en refesant le raccourci il en supprime 3 puis ensuite les dernier un par un
je ne comprend pas
ca marche presque
sur une colonne de 10 #N/A il m'en supprime 5 puis apres en refesant le raccourci il en supprime 3 puis ensuite les dernier un par un
je ne comprend pas
m@rina
Messages postés
19855
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
29 mars 2024
11 258
7 juil. 2008 à 12:04
7 juil. 2008 à 12:04
Bonjour,
Ouppss !! Effectivement, comme d'habitude, j'avais oublié le problème des suppression de lignes dans une boucle... Quand la ligne est supprimée, Excel descend d'une ligne parce qu'elle est supprimée, et descend à nouveau parce que c'est la boucle, et toutes les lignes souhaitées ne sont donc pas supprimées !
Pour pallier ce problème il faut partir du bas :
Sub supprime3()
Dim i As Integer
For i = Range("C65000").End(xlUp).Row To 1 Step -1
If IsError(Range("C" & i).Value) And Range("E" & i).Value = "" Then
If Range("C" & i).Value = CVErr(xlErrNA) Then
Range("c" & i).EntireRow.Delete
End If
End If
Next
End Sub
ps : j'ai intégré la deuxième condition : E doit être vide
Ouppss !! Effectivement, comme d'habitude, j'avais oublié le problème des suppression de lignes dans une boucle... Quand la ligne est supprimée, Excel descend d'une ligne parce qu'elle est supprimée, et descend à nouveau parce que c'est la boucle, et toutes les lignes souhaitées ne sont donc pas supprimées !
Pour pallier ce problème il faut partir du bas :
Sub supprime3()
Dim i As Integer
For i = Range("C65000").End(xlUp).Row To 1 Step -1
If IsError(Range("C" & i).Value) And Range("E" & i).Value = "" Then
If Range("C" & i).Value = CVErr(xlErrNA) Then
Range("c" & i).EntireRow.Delete
End If
End If
Next
End Sub
ps : j'ai intégré la deuxième condition : E doit être vide
JOLARITALE
Messages postés
144
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
10 décembre 2014
4
>
m@rina
Messages postés
19855
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
29 mars 2024
7 juil. 2008 à 12:11
7 juil. 2008 à 12:11
trop bien ca marche
tu es super forte!!!
par contre euh.. enfait E doit etre non vide
si E est vide faut la laisser et si E contient quelque chose il faut la supprimer...
tu es super forte!!!
par contre euh.. enfait E doit etre non vide
si E est vide faut la laisser et si E contient quelque chose il faut la supprimer...
JOLARITALE
Messages postés
144
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
10 décembre 2014
4
7 juil. 2008 à 14:37
7 juil. 2008 à 14:37
euh...
c'est la premiere macro que je suis amener à utiliser... donc la modifier... non j'aurais pas su ;)
Merci beaucoup!!!
tu es vraiment trop géniale!!!
c'est la premiere macro que je suis amener à utiliser... donc la modifier... non j'aurais pas su ;)
Merci beaucoup!!!
tu es vraiment trop géniale!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
JOLARITALE
Messages postés
144
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
10 décembre 2014
4
9 juil. 2008 à 12:54
9 juil. 2008 à 12:54
ca bugg
j'ai rééssayer ce matin
la macro me dit qu'il y a un problème avec le 2eme End If...
j'ai rééssayer ce matin
la macro me dit qu'il y a un problème avec le 2eme End If...
m@rina
Messages postés
19855
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
29 mars 2024
11 258
9 juil. 2008 à 13:35
9 juil. 2008 à 13:35
Bonjour,
Franchement, je vois vraiment pas ce qui peut gêner... J'ai retesté => Pas de problème !
As tu essayé de modifier la macro ?
m@rina
Franchement, je vois vraiment pas ce qui peut gêner... J'ai retesté => Pas de problème !
As tu essayé de modifier la macro ?
m@rina
JOLARITALE
Messages postés
144
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
10 décembre 2014
4
9 juil. 2008 à 13:40
9 juil. 2008 à 13:40
Bonjour,
J'ai bien essayer de prendre des bout de macro par ci par la pour voir mais... non...
quand je le lance il me surligne le 2eme End If
voila ma macro
Sub supp()
Application.ScreenUpdating = False
Dim i As Integer
For i = Range("C2500").End(xlUp).Row To 1 Step -1
If IsError(Range("C" & i).Value) And Range("E" & i).Value <> "" Then
If Range("C" & i).Value = CVErr(xlErrNA) Then
Range("c" & i).EntireRow.Delete
End If
End If
Next
Application.ScreenUpdating = True
End Sub
J'ai bien essayer de prendre des bout de macro par ci par la pour voir mais... non...
quand je le lance il me surligne le 2eme End If
voila ma macro
Sub supp()
Application.ScreenUpdating = False
Dim i As Integer
For i = Range("C2500").End(xlUp).Row To 1 Step -1
If IsError(Range("C" & i).Value) And Range("E" & i).Value <> "" Then
If Range("C" & i).Value = CVErr(xlErrNA) Then
Range("c" & i).EntireRow.Delete
End If
End If
Next
Application.ScreenUpdating = True
End Sub
m@rina
Messages postés
19855
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
29 mars 2024
11 258
9 juil. 2008 à 14:05
9 juil. 2008 à 14:05
Re-essayé chez moi, pas de problème !!!
En plus une erreur juste sur un End If, ça paraît curieux...
Elle dit quoi l'erreur ?
T'es sûre de ne pas avoir mis un point d'arrêt sur le End If ? (gros point rouge devant la ligne)
m@rina
En plus une erreur juste sur un End If, ça paraît curieux...
Elle dit quoi l'erreur ?
T'es sûre de ne pas avoir mis un point d'arrêt sur le End If ? (gros point rouge devant la ligne)
m@rina
JOLARITALE
Messages postés
144
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
10 décembre 2014
4
9 juil. 2008 à 14:10
9 juil. 2008 à 14:10
euh... non
j'aipas fait de chose qui ressemble a un gros point rouge ;)
en meme temps c'est pas grave... je vais revenir a la bonne vielle méthode... vais les trier en fonction de C puis de E et supprimer toutes les dernière lignes...
j'aipas fait de chose qui ressemble a un gros point rouge ;)
en meme temps c'est pas grave... je vais revenir a la bonne vielle méthode... vais les trier en fonction de C puis de E et supprimer toutes les dernière lignes...
m@rina
Messages postés
19855
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
29 mars 2024
11 258
9 juil. 2008 à 14:24
9 juil. 2008 à 14:24
Tu peux exporter la macro (en .bas) et la mettre sur cjoint.com ?
Pour exporter : tu cliques dans la macro, puis Menu, Exporter un fichier
C'est vraiment incompréhensible
m@rina
Pour exporter : tu cliques dans la macro, puis Menu, Exporter un fichier
C'est vraiment incompréhensible
m@rina
JOLARITALE
Messages postés
144
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
10 décembre 2014
4
9 juil. 2008 à 14:35
9 juil. 2008 à 14:35
je peut pas le faire ici...
mais je pourrais le faire ce soir
mais c'est pas grave je vais le faire a la main tant pis
ne t'embete pas...
mais je pourrais le faire ce soir
mais c'est pas grave je vais le faire a la main tant pis
ne t'embete pas...
JOLARITALE
Messages postés
144
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
10 décembre 2014
4
10 juil. 2008 à 16:37
10 juil. 2008 à 16:37
Voila le fichier
http://www.cijoint.fr/cjlink.php?file=cj200807/cijh0qZDcO.xls.
Ici, les ligne 793, 795 à 798 et 801 devrais se supprimer
mais ça coince
par contre j'ai essayé de mettre le .bas sur cijon mais le ça dit que le format est non supporté.
http://www.cijoint.fr/cjlink.php?file=cj200807/cijh0qZDcO.xls.
Ici, les ligne 793, 795 à 798 et 801 devrais se supprimer
mais ça coince
par contre j'ai essayé de mettre le .bas sur cijon mais le ça dit que le format est non supporté.
m@rina
Messages postés
19855
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
29 mars 2024
11 258
10 juil. 2008 à 23:54
10 juil. 2008 à 23:54
Bonsoir,
Je suis désolée, mais ton fichier n'est vraiment pas fait dans les règles de l'art Excel !!!
Règle importante : JAMAIS de cellules fusionnées dans un base de données !!! Donc à supprimer toutes ces cellules fusionnées...
Deuxième règle : Jamais d'entêtes de colonnes sur 1 ou plusieurs lignes...
Ensuite : tu as une pseudo liaison avec une macro qui sort de je ne sais où et qui fait planter : à supprimer (Menu Edition, Liaison, Rompre les liaisons).
Et pour terminer : tu m'as dit que l'un des critères étaient que les cellules de la colonne E ne soit pas vides. Or, aucune cellule de la cellule E n'est vide... Il y a une formule dans chaque cellule ! Et une cellule avec une fomule, même si le résultat est "rien", n'est pas une cellule vide !
m@rina
Je suis désolée, mais ton fichier n'est vraiment pas fait dans les règles de l'art Excel !!!
Règle importante : JAMAIS de cellules fusionnées dans un base de données !!! Donc à supprimer toutes ces cellules fusionnées...
Deuxième règle : Jamais d'entêtes de colonnes sur 1 ou plusieurs lignes...
Ensuite : tu as une pseudo liaison avec une macro qui sort de je ne sais où et qui fait planter : à supprimer (Menu Edition, Liaison, Rompre les liaisons).
Et pour terminer : tu m'as dit que l'un des critères étaient que les cellules de la colonne E ne soit pas vides. Or, aucune cellule de la cellule E n'est vide... Il y a une formule dans chaque cellule ! Et une cellule avec une fomule, même si le résultat est "rien", n'est pas une cellule vide !
m@rina
JOLARITALE
Messages postés
144
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
10 décembre 2014
4
11 juil. 2008 à 07:56
11 juil. 2008 à 07:56
Bonjour ;)
Merci :)
Maintenant ça marche beaucoup mieux en effet ;)
Merci :)
Maintenant ça marche beaucoup mieux en effet ;)
6 juil. 2008 à 07:27
pour le moment je suis pas chez moi mais des que je rentre j'essai
merci beaucoup
6 juil. 2008 à 21:11
la méthode Delete de la classe Range a échoué.
et la ligne c.EntireRow.Delete apparait en jaune surligné...
que dois je faire?
Qu'est ce que ca veux dire?
Merci
7 juil. 2008 à 00:01
Est ce que par hasard tes ta feuille serait protégée ? Je ne vois que ça...
Quelle est ta version d'Excel ?
m@rina
7 juil. 2008 à 11:19
je sais pas trop... comment je peut verifier ça?
je suis sous 2003
7 juil. 2008 à 11:21
il faudrait donc que la colonne C contienne #N/A et que la colonne E soit non vide