Boucle supression ligne VBA Excel
Résolu
rando13
Messages postés
4
Statut
Membre
-
rando13 Messages postés 4 Statut Membre -
rando13 Messages postés 4 Statut Membre -
Salut a tous !
Me suis plante dans message precedent, sorry...
Besoin de votre aide pour un probleme certainement trop facile pour vous :
feuille excel avec trois colonne :
Jean 21 3/21/2005
Jean 21 4/21/2005
Jean 21 4/21/2005
Pierre 21 7/24/2005
Pierre 21 7/24/2005
Pierre 21 8/12/2005
Paul 34 5/23/2005
Paul 34 6/23/2005
Paul 34 6/23/2005
Je cherche a ne garder que la derniere ligne par nom.
Voila unchemin que j'ai commence :
Private Sub boucle()
'éliminer les lignes en trop
'Variables compteur
Dim actualLine As Integer 'variable compteur: ligne en traitement
Dim countline As Integer 'variable compteur: lignes totales
'*************************
'Variables traitement
Dim dateA As Date 'première date
Dim dateB As Date 'deuxième date
Dim prevname As String 'premier nom
Dim nameB As String 'deuxième nom
'Initialisation des variables
countline = 0
actualLine = 0
dateA = 0
dateB = 0
prevname = ""
nameB = ""
'Range("A1").Select
'traitement des données
'Count(Columns("A:A")) à revoir, compter les lignes
Range("A1").Select
countline = Range(Selection, Selection.End(xlDown)).Count
dateA = ActiveCell.Offset(actualLine, 2)
dateB = ActiveCell.Offset(actualLine + 1, 2)
prevname = ActiveCell.Offset(actualLine, 0)
nameB = ActiveCell.Offset(actualLine + 1, 0)
'boucle de traitement
For actualLine = 1 To countline
'test des données
If (prevname = nameB) And (dateA <= dateB) Then
'action
Et la il faudrait la phrase magique qui elimine la ligne en cours de traitement ! Suis-je sur la bonne route, y en a t il une de plus facile ?
Merci pour votre aide !
Me suis plante dans message precedent, sorry...
Besoin de votre aide pour un probleme certainement trop facile pour vous :
feuille excel avec trois colonne :
Jean 21 3/21/2005
Jean 21 4/21/2005
Jean 21 4/21/2005
Pierre 21 7/24/2005
Pierre 21 7/24/2005
Pierre 21 8/12/2005
Paul 34 5/23/2005
Paul 34 6/23/2005
Paul 34 6/23/2005
Je cherche a ne garder que la derniere ligne par nom.
Voila unchemin que j'ai commence :
Private Sub boucle()
'éliminer les lignes en trop
'Variables compteur
Dim actualLine As Integer 'variable compteur: ligne en traitement
Dim countline As Integer 'variable compteur: lignes totales
'*************************
'Variables traitement
Dim dateA As Date 'première date
Dim dateB As Date 'deuxième date
Dim prevname As String 'premier nom
Dim nameB As String 'deuxième nom
'Initialisation des variables
countline = 0
actualLine = 0
dateA = 0
dateB = 0
prevname = ""
nameB = ""
'Range("A1").Select
'traitement des données
'Count(Columns("A:A")) à revoir, compter les lignes
Range("A1").Select
countline = Range(Selection, Selection.End(xlDown)).Count
dateA = ActiveCell.Offset(actualLine, 2)
dateB = ActiveCell.Offset(actualLine + 1, 2)
prevname = ActiveCell.Offset(actualLine, 0)
nameB = ActiveCell.Offset(actualLine + 1, 0)
'boucle de traitement
For actualLine = 1 To countline
'test des données
If (prevname = nameB) And (dateA <= dateB) Then
'action
Et la il faudrait la phrase magique qui elimine la ligne en cours de traitement ! Suis-je sur la bonne route, y en a t il une de plus facile ?
Merci pour votre aide !
A voir également:
- Boucle supression ligne VBA Excel
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Partager photos en ligne - Guide
- Word et excel gratuit - Guide
- Formule somme excel ligne - Guide
1 réponse
Bonjour rando13,
Si vraiment tu veux ne conserver que la dernière ligne par nom, tu peux utiliser quelque chose comme :
C'est le moteur. Tu adaptes...
Si vraiment tu veux ne conserver que la dernière ligne par nom, tu peux utiliser quelque chose comme :
Sub SuppressionDoublons() Dim CelluleCourante As Range Dim CelluleSuivante As Range Application.ScreenUpdating = False Set CelluleCourante = ActiveCell Do While Not IsEmpty(CelluleCourante) Set CelluleSuivante = CelluleCourante.Offset(1, 0) If CelluleSuivante.Value = CelluleCourante.Value Then CelluleCourante.EntireRow.Delete End If Set CelluleCourante = CelluleSuivante Loop End SubIl suffit que tu sélectionnes la première cellule de la colonne qui te sert de critère (le premier "Jean" de ta liste).
C'est le moteur. Tu adaptes...
Pourquoi faire simple quand on peut faire compliquer... hem...
J'étais vraiment parti sur le mauvais chemin !
Merci beaucoup !
Exactement ce que je voulais !
Meric !