Garder uniquement les doublons sur Excel [Résolu] - VB/VBA/VBS - Programmation
Marsh Posté le 06-08-2006 à 06:14:43
Bonjour,
habituellement quand on delete on procède à l'envers (en commençant par la dernière ligne), c'est plus facile à gérer :
Avec ta macro actuelle, tu es dans la boucle mettons... Ligne 6
La condition à déjà été évaluée pour la ligne 6
et on décide la supprimer :
Après suppression, l'actuelle ligne 7 va devenir la nouvelle ligne 6 et la condition ne sera pas réévaluée car elle à déjà été évaluée pour la ligne 6 et la boucle For va s'incrémenter. c'est donc la nouvelle ligne 7 qui sera évaluée.
C'est ce qui fait que certaines lignes sont ignorée.
On pourrais "tricher" en mettant un
i = i -1
après le delete de manière à réexaminer la ligne 6, cependant cette manière de faire n'est pas très orthodoxe.
Par convention les programmeurs évitent de manipuler les variables de boucle à l'intérieur de la boucle, ce qui produit souvent des effets difficilement gérables : il est bien plus simple de monter la boucle à l'envers :
For i = 13 To 1 Step -1
... le reste sans changement
A+
Marsh Posté le 05-08-2006 à 20:30:06
Bonsoir
Je veux utiliser le code suivant
Sub Gardelesdoublons()
For i = 1 To 13
For j = 1 To 7
If Cells(i, j).Value = 5 Then
Cells(i, j).Font.ColorIndex = 3
Else
Cells(i, j).Delete
End If
Next j
Next i
End Sub
Supposons que j'ai un tableau excel à une colonne triée avec des doublons et des valeurs différentes. Je veux extraire uniquement les doublons. Je lance ma macro. Mes doublons sont biens conservés et sont coloriés en rouge. Par contre, je ne sais pas pourquoi, mon tableau conserve certaines valeurs, à savoir une valeur sur deux et ma première ligne de doublons n'est pas coloriée.
Merci pour vos explications
Message édité par TAM136 le 06-08-2006 à 09:19:35