Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Suppression de lignes selon condition

kiko974

XLDnaute Nouveau
Bonjour à tous,

Je cherche à traiter un fichier trés volumineux de la façon suivante (si je n'automatise pas ce travail, je risque de passer des mois à le traiter de façon manuelle :unsure: )

J'ai récupéré des informations relatives à des individus. Ci-joint un extrait du fichier.

Colonne A: le numéro de l'individu.
Colonne B: soit le prénom, soit la taille, soit le poids.

Les individus que je désire conserver sont ceux qui mentionnent prénom, taille et poids. Les lignes relatives aux autres individus dont certaines données manquent doivent être effacées.

Autrement dit, si dans la colonne A, je n'obtiens successivement pas 3 fois le numéro du même individu, j'efface les lignes. Sinon je conserve les lignes.

Dur dur d'être clair ... le problème est simple mais difficile à expliquer ...

Merci pour votre aide !

Kiko. [file name=exemple_20060116133417.zip size=1711]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_20060116133417.zip[/file]

Message édité par: Kiko974, à: 16/01/2006 13:34
 

Pièces jointes

  • exemple_20060116133417.zip
    1.7 KB · Affichages: 19

GillesC

XLDnaute Occasionnel
Aie ça ne passe pas j'essaye encore [file name=exemple_prog.zip size=3400]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_prog.zip[/file]
 

Pièces jointes

  • exemple_prog.zip
    3.3 KB · Affichages: 26

Bricofire

XLDnaute Impliqué
Bonjour Kilo974, GilleC,

Une soluce en VBA Exc 2000 ....


Sub Menage()
Dim I As Integer

Range('A1').Select
Do While ActiveCell Différent de ''
If ActiveCell.Offset(1, 0) Différent de ActiveCell Then I = 1
If ActiveCell.Offset(2, 0) Différent de ActiveCell And ActiveCell.Offset(2, 0) Différent de ActiveCell.Offset(1, 0) Then I = 2
If ActiveCell.Offset(1, 0) = ActiveCell And ActiveCell.Offset(2, 0) = ActiveCell Then I = 3
If I = 1 Then ActiveCell.EntireRow.Delete: I = 0
If I = 2 Then
ActiveCell.Offset(1, 0).EntireRow.Delete
ActiveCell.EntireRow.Delete
I = 0
End If
If I = 3 Then ActiveCell.Offset(3, 0).Select: I = 0
Loop

End Sub


Il faut remplacer les mots -Différent de- par les signes corrects, mais on ne peut les mettre sur les fils

Voir fichier sinon

Bonne journée,

édition : PS dans le fichier les décla var autres que i ne servent à rien, ce sont de vieilles traces
Brico [file name=RepKilo94.zip size=8488]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/RepKilo94.zip[/file]

Message édité par: bricofire, à: 16/01/2006 15:28
 

Pièces jointes

  • RepKilo94.zip
    8.3 KB · Affichages: 34

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…