Problème de suppression de lignes(Exxcel)
Résolu/Fermé
A voir également:
- Problème de suppression de lignes(Exxcel)
- Forcer suppression fichier - Guide
- Partage de photos en ligne - Guide
- Site de vente en ligne particulier - Guide
- Suppression page word - Guide
- Suppression cookies - Guide
4 réponses
leplot
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
131
17 avril 2009 à 14:42
17 avril 2009 à 14:42
Bonjour
Je préfère faire un do loop plutôt qu'un each pour pouvoir choisir de changer de ligne ou non. S'il y a une suppression, on teste la même ligne sinon, on descend.
Il faut 10-20 secondes pour faire tout le fichier.
Option Explicit Sub SuppressionLignes() Dim Feuille Dim NumLigne Set Feuille = ActiveSheet Feuille.Activate NumLigne = 1 Do If Feuille.Range("F" & NumLigne) <> "Type de commande" And Feuille.Range("F" & NumLigne) <> "Sous-traitance" And Feuille.Range("F" & NumLigne) <> "" Then Feuille.Rows(NumLigne).Delete Shift:=xlUp Else NumLigne = NumLigne + 1 End If Loop While NumLigne <= 65356 End Sub
Je préfère faire un do loop plutôt qu'un each pour pouvoir choisir de changer de ligne ou non. S'il y a une suppression, on teste la même ligne sinon, on descend.
Il faut 10-20 secondes pour faire tout le fichier.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
17 avril 2009 à 14:34
17 avril 2009 à 14:34
Salut,
Vous n'avez que 2 chaines de caractères à "traiter"? Type de commande et sous-traitance?
Si c'est le cas essayez ceci :
Sauvegardez votre tableau car une fois qu'une macro est lancée on ne peux plus annuler!!!
ActiveSheet.Range("F1").Select 'sélectionne la 1ère cellule colonne F
Do While ActiveCell <> "" 'tant que la cellule n'est pas vide
If ActiveCell.Value = "Type de commande" Then 'si cellule = type de commande alors
ActiveCell.EntireRow.Delete 'supprimer la ligne entière
Else 'sinon
If ActiveCell.Value = "sous-traitance" Then 'si cellule = sous-traitance alors
ActiveCell.EntireRow.Delete ' supprimer la ligne entière
End If
End If
ActiveCell.Offset(1, 0).Select 'si cellule différent de type de commande et de sous-traitance passer à la suivante
Loop 'on recommence jusqu'à ce que mon tableau soit épuré de ce que je ne veux plus
ça doit être ça...
Vous n'avez que 2 chaines de caractères à "traiter"? Type de commande et sous-traitance?
Si c'est le cas essayez ceci :
Sauvegardez votre tableau car une fois qu'une macro est lancée on ne peux plus annuler!!!
ActiveSheet.Range("F1").Select 'sélectionne la 1ère cellule colonne F
Do While ActiveCell <> "" 'tant que la cellule n'est pas vide
If ActiveCell.Value = "Type de commande" Then 'si cellule = type de commande alors
ActiveCell.EntireRow.Delete 'supprimer la ligne entière
Else 'sinon
If ActiveCell.Value = "sous-traitance" Then 'si cellule = sous-traitance alors
ActiveCell.EntireRow.Delete ' supprimer la ligne entière
End If
End If
ActiveCell.Offset(1, 0).Select 'si cellule différent de type de commande et de sous-traitance passer à la suivante
Loop 'on recommence jusqu'à ce que mon tableau soit épuré de ce que je ne veux plus
ça doit être ça...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
17 avril 2009 à 14:44
17 avril 2009 à 14:44
Pardon !!! Ma macro supprime les lignes ou est indiqué sous traitance et Type de commande....
Suit les conseils de "leplot".
Encore désolé
Suit les conseils de "leplot".
Encore désolé
Pikaju,
Il me semblait bien que quelque chose dans ton code quelque chose clochait.
Mais ton temps de réponse, aimabilité et honneté fait que ton aide à été grandement apprécié.
leplot,
Un grand merci à toi, ta réponse est claire, efficace et élégante.
Tu viens de me retirer une jolie épine du pied.
Ce problème à été résolu avec une grande efficacité.
Encore une fois, Un grand MERCI à toutes la communauté "commentcamarche".
BenGonGon
Il me semblait bien que quelque chose dans ton code quelque chose clochait.
Mais ton temps de réponse, aimabilité et honneté fait que ton aide à été grandement apprécié.
leplot,
Un grand merci à toi, ta réponse est claire, efficace et élégante.
Tu viens de me retirer une jolie épine du pied.
Ce problème à été résolu avec une grande efficacité.
Encore une fois, Un grand MERCI à toutes la communauté "commentcamarche".
BenGonGon