Effacer lignes quand apparait une valeur dans une autre colonnne
Résolu
teprac
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Teprac -
Teprac -
Bonjour,
J'ai un long fichier avec bcp de lignes
Dans la colonne A j'ai des identifiants
Dans la colonne B j'ai des valeurs de 1 à 9
Je voudrais effacer toutes les lignes ayant le même identifiant lorsque dans la colonne B apparait la valeur 9
AVANT
Nom Valeur
Jacques 1
Jacques 2
Jacques 3
Jacques 5
Lionel 1
Lionel 9
Patrick 2
Patrick 5
Paul 1
Paul 5
Paul 9
Pierre 8
APRES
Nom Valeur
Jacques 1
Jacques 2
Jacques 3
Jacques 5
Patrick 2
Patrick 5
Pierre 8
Merci de votre aide
J'ai un long fichier avec bcp de lignes
Dans la colonne A j'ai des identifiants
Dans la colonne B j'ai des valeurs de 1 à 9
Je voudrais effacer toutes les lignes ayant le même identifiant lorsque dans la colonne B apparait la valeur 9
AVANT
Nom Valeur
Jacques 1
Jacques 2
Jacques 3
Jacques 5
Lionel 1
Lionel 9
Patrick 2
Patrick 5
Paul 1
Paul 5
Paul 9
Pierre 8
APRES
Nom Valeur
Jacques 1
Jacques 2
Jacques 3
Jacques 5
Patrick 2
Patrick 5
Pierre 8
Merci de votre aide
A voir également:
- Effacer lignes quand apparait une valeur dans une autre colonnne
- Comment effacer une page word - Guide
- Clé usb n'apparait pas - Guide
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Effacer les données de navigation sur android - Guide
- Effacer iphone - Guide
4 réponses
Bonjour,
Avec cette macro tu devrais faire ton effacement :
Avec ton exemple : http://www.cjoint.com/c/FEziFmj4c1l
Avec cette macro tu devrais faire ton effacement :
Public Sub Sup_lignes() Dim lg1 As Long, lg2 As Long For lg1 = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If Cells(lg1, 2).Value = 9 Then For lg2 = lg1 - 1 To 2 Step -1 If Cells(lg1, 1).Value = Cells(lg2, 1).Value Then Rows(lg2).Delete lg1 = lg1 - 1 End If Next lg2 Rows(lg1).Delete End If Next lg1 End Sub
Avec ton exemple : http://www.cjoint.com/c/FEziFmj4c1l
Bonjour
Merçi pour la réponse
Toutefois la suppression n'est pas parfaite car elle dépend de la position du 9
si le 9 est au centre on gardera des lignes alors qu'elles doivent être effaées.
Merci
Merçi pour la réponse
Toutefois la suppression n'est pas parfaite car elle dépend de la position du 9
si le 9 est au centre on gardera des lignes alors qu'elles doivent être effaées.
Merci
Bonjour,
la suppression n'est pas parfaite
C'est vrai effectivement, je m'était basé sur ton exemple qui n'était pas exhaustif lui non plus. Voici le code modifié :
la suppression n'est pas parfaite
C'est vrai effectivement, je m'était basé sur ton exemple qui n'était pas exhaustif lui non plus. Voici le code modifié :
Public Sub Sup_lignes() Dim lg1 As Long, lg2 As Long For lg1 = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If Cells(lg1, 2).Value = 9 Then For lg2 = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If Cells(lg1, 1).Value = Cells(lg2, 1).Value Then If Cells(lg2, 2).Value <> 9 Then Rows(lg2).Delete lg1 = IIf(lg2 < lg1, lg1 - 1, lg1) End If End If Next lg2 Rows(lg1).Delete End If Next lg1 End SubAvec ton exemple modifié : https://www.cjoint.com/c/FEzpN1yNDFl