Problème de suppression de lignes(Exxcel)
Résolu/Fermé
A voir également:
- Problème de suppression de lignes(Exxcel)
- Forcer suppression fichier - Guide
- Suppression compte instagram - Guide
- Suppression page word - Guide
- Consultez le code source de cette page. copiez la ligne indiquant aux moteurs de recherche de ne pas référencer la page. ✓ - Forum Référencement
- Suppression compte facebook - 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
128
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
15 mars 2023
2 712
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
15 mars 2023
2 712
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