Supprimer les lignes contenant moins de 7 valeurs
Résolu
Keyran
-
Keyran -
Keyran -
Bonjour,
J'ai sur Excel un tableau "à trous" entre la 20e et la 30e colonne (environ 2000 lignes), dont je voudrais supprimer les lignes si elles contiennent moins de 7 valeurs, tout en laissant le reste de ma feuille intouché.
J'ai trouvé sur internet des programmes permettant de supprimer une cellule ou une ligne entiere si elle était vide, mais aucun avec ce type de condition, donc novice que je suis, j'aurais besoin d'un coup de main.
Je mets en pièce jointe mon fichier entier. Il comprend déjà un macro qui me permet d'aligner mes données comme souhaité, et je souhaiterais le compléter.
https://cjoint.com/c/HFflcsLTPat
Merci d'avance.
J'ai sur Excel un tableau "à trous" entre la 20e et la 30e colonne (environ 2000 lignes), dont je voudrais supprimer les lignes si elles contiennent moins de 7 valeurs, tout en laissant le reste de ma feuille intouché.
J'ai trouvé sur internet des programmes permettant de supprimer une cellule ou une ligne entiere si elle était vide, mais aucun avec ce type de condition, donc novice que je suis, j'aurais besoin d'un coup de main.
Je mets en pièce jointe mon fichier entier. Il comprend déjà un macro qui me permet d'aligner mes données comme souhaité, et je souhaiterais le compléter.
https://cjoint.com/c/HFflcsLTPat
Merci d'avance.
A voir également:
- Supprimer les lignes contenant moins de 7 valeurs
- Supprimer rond bleu whatsapp - Guide
- Photofiltre 7 - Télécharger - Retouche d'image
- Clé windows 7 - Guide
- Impossible de supprimer une page word - Guide
- Delphi 7 - Télécharger - Langages
2 réponses
Bonjour,
Colle cette macro dans l'exporateur de projet visual basic dans la feuille concernée et exécute la.
Tu devrais obtenir le résultat escompté.
Bonne journée
Colle cette macro dans l'exporateur de projet visual basic dans la feuille concernée et exécute la.
Tu devrais obtenir le résultat escompté.
Sub supprimer_ligne()
Dim l, c, fin As Integer
Dim cpte As Integer
'détermine la fin du tableau en fonction de la colonne A
fin = Range("A66536").End(xlUp).Row 'peut être remplacé par un chiffre comme 2000
'pour chaque du tableau
For l = 1 To fin
cpte = 0
'Pour chaque cellule entre les colonnes 20 et 30
For c = 20 To 30 Step 1
'si cellule non vide, incrémente les compteur
If Cells(l, c) <> "" Or Cells(l, c) <> 0 Then
cpte = cpte + 1
End If
Next c
'si le compteur inférieur à 7
If cpte < 7 Then
'supprime la ligne
Rows(l).Delete
End If
Next l
End Sub
Bonne journée
Merci beaucoup !
En attendant votre réponse j'ai essayé des trucs et je crois que j'ai réussi avec :
Le seul problème avec ce code (et le votre aussi, si je le comprends bien) étant que si deux lignes successives répondent à cette condition, la deuxième ne sera pas supprimée. Mais les cas sont rares donc ça n'est pas dramatique.
Merci en tout cas,
Cordialement,
Rose
PS : Ayant posté cette question sans être membre, je ne sais comment la marquer résolue ?
En attendant votre réponse j'ai essayé des trucs et je crois que j'ai réussi avec :
Dim i As Integer
For i = 3 To 1708
If Application.WorksheetFunction.CountBlank(Sheets("Feuil1").Range(Cells(i, 30), Cells(i, 39))) > 4 Then
Range(Cells(i, 29), Cells(i, 39)).Delete Shift:=xlUp
End If
Next i
Le seul problème avec ce code (et le votre aussi, si je le comprends bien) étant que si deux lignes successives répondent à cette condition, la deuxième ne sera pas supprimée. Mais les cas sont rares donc ça n'est pas dramatique.
Merci en tout cas,
Cordialement,
Rose
PS : Ayant posté cette question sans être membre, je ne sais comment la marquer résolue ?
C'est de 30 à 39 que je souhaite compter et de 29 à 39 que je souhaite supprimer.