Excel VBA:supprimer lignes ne contenant pas..
Résolu/Fermé
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
-
18 août 2010 à 19:14
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 - 20 août 2010 à 11:08
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 - 20 août 2010 à 11:08
A voir également:
- Vba supprimer ligne si cellule contient
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Ligne occupée - Forum SFR
7 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
19 août 2010 à 18:23
19 août 2010 à 18:23
Tant mieux, mais tu n'a pas tenu compte de la remarque de bacus13..
et pour Option compare texte c'est TOUT EN HAUT DU MODULE
Et vu que tu n'a pas mis Option Explicit tu ne vois pas l'ereur de déclaration...
z N'EST PAS EGALE à z$
pour employer z$ tu dois l'écrire z$ = Cells(i, 61).Value
ou alors dim z as String, alors z = Cells(i, 61).Value , c'est bon
Prend aussi l'habitude de mettre Option explicit dans tout tes modules.
Plus facile..dans l'éditeur VBA >> Outils >> options >> cocher >> Déclaration des variables obligatoire
et pour Option compare texte c'est TOUT EN HAUT DU MODULE
Et vu que tu n'a pas mis Option Explicit tu ne vois pas l'ereur de déclaration...
z N'EST PAS EGALE à z$
pour employer z$ tu dois l'écrire z$ = Cells(i, 61).Value
ou alors dim z as String, alors z = Cells(i, 61).Value , c'est bon
Prend aussi l'habitude de mettre Option explicit dans tout tes modules.
Plus facile..dans l'éditeur VBA >> Outils >> options >> cocher >> Déclaration des variables obligatoire
Option Explicit Option Compare Text Sub suppression() Dim z as String For i = 3000 To 2 Step -1 z = Cells(i, 61).Value If Not (Cells(i, 61) Like ("PROD*") Or Cells(i, 61) Like ("REC*")) Then Rows(i).Delete Next ActiveWorkbook.Save End Sub
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 18/08/2010 à 19:33
Modifié par lermite222 le 18/08/2010 à 19:33
Bonjour,
Les expressions PROD ou REC se trouve où dans le libellé de la cellule ?
A+
Edit:
Tu dois ajouter Option Compare Text en haut du module, si ce n'est fait.
et ta formule devrait être...
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Les expressions PROD ou REC se trouve où dans le libellé de la cellule ?
A+
Edit:
Tu dois ajouter Option Compare Text en haut du module, si ce n'est fait.
et ta formule devrait être...
If Not (Cells(i, 61) Like ("PROD*") Or Cells(i, 61) Like ("REC*")) Then Rows(i).Delete
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
18 août 2010 à 19:20
18 août 2010 à 19:20
Tout au début tel que suit :
PROD
RECON
RECIA
PROD
RECON
RECIA
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
18 août 2010 à 19:36
18 août 2010 à 19:36
voir modif poste précédant
bacus13
Messages postés
30
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
1 septembre 2010
8
18 août 2010 à 20:05
18 août 2010 à 20:05
rien a voir mais pourquoi faire k = Cells(3000, 61).Row et pas k = 3000?
ou même For i = 3000 to 2 Step -1 ?
ou même For i = 3000 to 2 Step -1 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
19 août 2010 à 11:39
19 août 2010 à 11:39
Bonjour et merci pour cette réponse.
Donc ça fonctionne parfaitement, bien que je n'ai pas pu ajouter l'option : "Option Compare Text" dans ma macro;
Je reçois le retour : "Instruction incorrecte dans une procédure"
Malgré ce détail, la routine fonctionne très bien comme suit :
Sub suppression()
Dim z$, i&, k&
k = Cells(3000, 61).Row
For i = k To 2 Step -1
z = Cells(i, 61).Value
If Not (Cells(i, 61) Like ("PROD*") Or Cells(i, 61) Like ("REC*")) Then Rows(i).Delete
Next
ActiveWorkbook.Save
End Sub
Merci de ton aide :)
Donc ça fonctionne parfaitement, bien que je n'ai pas pu ajouter l'option : "Option Compare Text" dans ma macro;
Je reçois le retour : "Instruction incorrecte dans une procédure"
Malgré ce détail, la routine fonctionne très bien comme suit :
Sub suppression()
Dim z$, i&, k&
k = Cells(3000, 61).Row
For i = k To 2 Step -1
z = Cells(i, 61).Value
If Not (Cells(i, 61) Like ("PROD*") Or Cells(i, 61) Like ("REC*")) Then Rows(i).Delete
Next
ActiveWorkbook.Save
End Sub
Merci de ton aide :)
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
19 août 2010 à 20:03
19 août 2010 à 20:03
Ah ok, je vois l'erreur.
Je vais rectifier ça dès demain matin.
Merci a toi et à Bacus (Désolé, je n'avais pas vu le message de Bacus).
Votre aide m'aura été précieuse ! :)
Je vais rectifier ça dès demain matin.
Merci a toi et à Bacus (Désolé, je n'avais pas vu le message de Bacus).
Votre aide m'aura été précieuse ! :)
Eaheru
Messages postés
197
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
12 mars 2018
20
20 août 2010 à 11:08
20 août 2010 à 11:08
Macro rectifiée en tenant compte de vos propositions.
Ça marche nickel !
Ça marche nickel !