Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2490 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu]Garder uniquement les doublons sur Excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu]Garder uniquement les doublons sur Excel

n°1420544
TAM136
Posté le 05-08-2006 à 20:30:06  profilanswer
 

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
mood
Publicité
Posté le 05-08-2006 à 20:30:06  profilanswer
 

n°1420692
galopin01
Posté le 06-08-2006 à 06:14:43  profilanswer
 

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+

n°1420708
TAM136
Posté le 06-08-2006 à 09:18:54  profilanswer
 

Bonjour
 
Merci beaucoup pour la réponse.
 
@+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu]Garder uniquement les doublons sur Excel

 

Sujets relatifs
[Javascript] Problème d'espace et <select> [Résolu][ Batch Dos ] Le condition sur une appli executé ? [ Résolu ]
[Resolu] Decalage de bit[vbs][résolu] desactiver prompt avec une valeur par defaut
[resolu] Deux problèmes d'affichages d'images.[RESOLU]SuperWaba erreur
[Résolu] [VB.Net] Accès variable de type Generic.List(Of ...) dans[Résolu]Récupérer le nom d'un fichier à uploader
Double ouverture de pop up [résolu]macro de remplacement excel
Plus de sujets relatifs à : [Résolu]Garder uniquement les doublons sur Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR