Supression de lignes selon condition
Résolu/Fermé
A voir également:
- Supression de lignes selon condition
- Excel condition couleur - Guide
- Recherchev avec condition si ✓ - Forum Excel
- Supprimer lignes excel avec condition ✓ - Forum Programmation
- Afficher toutes les lignes masquées excel ✓ - Forum Excel
- Copiez la ligne indiquant aux moteurs de recherche de ne pas référencer la page. ✓ - Forum Référencement
4 réponses
Merci pour votre réponse.
Ca me donne une erreur 1004 à cet endroit-là :
If UCase(Cells(lig, 12)) = "PAS DE VPC" Then
Ca me donne une erreur 1004 à cet endroit-là :
If UCase(Cells(lig, 12)) = "PAS DE VPC" Then
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
13 juin 2017 à 19:16
13 juin 2017 à 19:16
bonsoir, as-tu essayé d'exécuter ta macro pas à pas? c'est souvent très éclairant!
https://www.commentcamarche.net/contents/1381-debogage
https://www.commentcamarche.net/contents/1381-debogage
@Leghe
Rebonjour,
Tu as dû avoir cette erreur 1004 car j'avais fait une petite erreur ;
essaye maintenant avec ce nouveau code :
dlig : dernière ligne de ton tableau ; 1ère ligne : la ligne 2 ;
Cells(lig, 12) : 12 => colonne L ; lignes lig : dlig à 2
J'ai vérifié que UCase([L5]) marche même si [L5] est vide :
c'est le cas, ça passe sans provoquer d'erreur.
En principe, il ne devrait plus y avoir d'erreur 1004 !
Si elle se reproduit quand même, essaye avec :
À te lire pour avoir ton avis.
--------------------------------------
Par rapport à mon précédent message (que j'ai supprimé),
j'ai laissé la suite du texte inchangée.
Si ta catégorie en colonne L peut être "PAS DE VPC" sans rien après,
inutile d'utiliser Like !
Si tu as des cellules qui commencent par "pas de vpc", donc avec
une suite, tel que : "pas de vpc de type 1", alors oui, là tu dois
utiliser Like, et la ligne #8 devient :
N'oublie pas le caractère " * " : c'est un caractère joker qui signifie
« tous les caractères ».
Si des caractères peuvent aussi être devant "pas de vpc" :
Merci de me dire si ça te convient.
Rebonjour,
Tu as dû avoir cette erreur 1004 car j'avais fait une petite erreur ;
essaye maintenant avec ce nouveau code :
Option Explicit
Sub Macro1()
Dim dlig As Long, lig As Long
dlig = Range("L" & Rows.Count).End(xlUp).Row
For lig = dlig To 2 Step -1
If UCase(Cells(lig, 12)) = "PAS DE VPC" Then Rows(lig).Delete
Next lig
End Sub
dlig : dernière ligne de ton tableau ; 1ère ligne : la ligne 2 ;
Cells(lig, 12) : 12 => colonne L ; lignes lig : dlig à 2
J'ai vérifié que UCase([L5]) marche même si [L5] est vide :
c'est le cas, ça passe sans provoquer d'erreur.
En principe, il ne devrait plus y avoir d'erreur 1004 !
Si elle se reproduit quand même, essaye avec :
If UCase(Cells(lig, 12).Value) = "PAS DE VPC" Then Rows(lig).Delete
À te lire pour avoir ton avis.
--------------------------------------
Par rapport à mon précédent message (que j'ai supprimé),
j'ai laissé la suite du texte inchangée.
Si ta catégorie en colonne L peut être "PAS DE VPC" sans rien après,
inutile d'utiliser Like !
Si tu as des cellules qui commencent par "pas de vpc", donc avec
une suite, tel que : "pas de vpc de type 1", alors oui, là tu dois
utiliser Like, et la ligne #8 devient :
If UCase(Cells(lig, 12)) Like "PAS DE VPC*" Then Rows(lig).Delete
N'oublie pas le caractère " * " : c'est un caractère joker qui signifie
« tous les caractères ».
Si des caractères peuvent aussi être devant "pas de vpc" :
If UCase(Cells(lig, 12)) Like "*PAS DE VPC*" Then Rows(lig).Delete
Merci de me dire si ça te convient.