Comment gérer les doublons sur deux colonnes VBA
Résolu/Fermé
h.bendaoud
Messages postés
21
Date d'inscription
vendredi 27 mars 2015
Statut
Membre
Dernière intervention
10 avril 2015
-
30 mars 2015 à 14:51
h.bendaoud Messages postés 21 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 10 avril 2015 - 7 avril 2015 à 09:42
h.bendaoud Messages postés 21 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 10 avril 2015 - 7 avril 2015 à 09:42
A voir également:
- Vba supprimer doublons plusieurs colonnes
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Supprimer les doublons excel - Guide
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Supprimer les doublons photos gratuit - Télécharger - Nettoyage
8 réponses
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
31 mars 2015 à 15:52
31 mars 2015 à 15:52
Option Explicit Const coCod = "A" ' colonne code Const coSta = "D" ' colonne statut Const lideb = 2 ' premiere ligne des données Const vert = 50 ' code couleur Const rouge = 3 ' idem Private Sub btOK_Click() Dim li As Long, lifin As Long, cod As Long, sta As String, lili As Long Dim obj As Object, plage As Range ' inhibe la maj de la feuille après chaque modification Application.ScreenUpdating = False ' derniere ligne non vide de la colone cocod lifin = Range(coCod & Rows.Count).End(xlUp).Row ' boucle sur les lignes en partant de la dernière (à cause des suppressions eventuelles de lignes For li = lifin To lideb + 2 Step -1 ' plage où on va rechercher le code cod Set plage = Range(coCod & lideb & ":" & coCod & li - 1) ' code et statut ligne i cod = Range(coCod & li).Value sta = Range(coSta & li).Value ' recherche cod dans plage Set obj = plage.Find(cod, , , xlWhole) ' si cod est trouvé If Not obj Is Nothing Then ' on recupere sa ligne lili = obj.Row ' si le statut ligne lili = statut ligne i alors on supprime la ligne li If Range(coSta & lili).Value = sta Then Rows(li).Delete ' sinon on met en rouge la ligne lili et en vert la ligne li Else Range(coCod & lili & ":" & coSta & lili).Font.ColorIndex = rouge Range(coCod & li & ":" & coSta & li).Font.ColorIndex = vert End If End If Next li ' activation de la maj de la feuille Application.ScreenUpdating = True End Sub
Bon après midi
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
4 avril 2015 à 10:19
4 avril 2015 à 10:19
Pour la couleur de la cellule
Range(coCod & lili & ":" & coSta & lili).Interior.ColorIndex = 4
Cdlmnt
Range(coCod & lili & ":" & coSta & lili).Interior.ColorIndex = 4
Cdlmnt
h.bendaoud
Messages postés
21
Date d'inscription
vendredi 27 mars 2015
Statut
Membre
Dernière intervention
10 avril 2015
7 avril 2015 à 09:42
7 avril 2015 à 09:42
Merci ccm
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
30 mars 2015 à 15:16
30 mars 2015 à 15:16
Bonjour
Peut il y avoir des "triplons" ou plus ? Si oui, que doit on en faire ?
Cdlmnt
Peut il y avoir des "triplons" ou plus ? Si oui, que doit on en faire ?
Cdlmnt
h.bendaoud
Messages postés
21
Date d'inscription
vendredi 27 mars 2015
Statut
Membre
Dernière intervention
10 avril 2015
30 mars 2015 à 15:19
30 mars 2015 à 15:19
Non logiquement il ne devrait pas y en avoir car si il y a un doublon et que le statut ne change pas d'état il est supprimé.
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
30 mars 2015 à 15:48
30 mars 2015 à 15:48
Donc si il y a deux numéro identiques dans la colonne A et que dans la colonne D les statuts sont les même je voudrais qu'il soit supprimer
lequel ? le premier ou le second ?
lequel ? le premier ou le second ?
h.bendaoud
Messages postés
21
Date d'inscription
vendredi 27 mars 2015
Statut
Membre
Dernière intervention
10 avril 2015
30 mars 2015 à 15:50
30 mars 2015 à 15:50
c'est les même donc pas d'importance que ce soit le premier ou le second
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
30 mars 2015 à 16:01
30 mars 2015 à 16:01
Un début de réponse à adapter
https://www.cjoint.com/?3CEqnVADpI6
Cdlmnt
https://www.cjoint.com/?3CEqnVADpI6
Cdlmnt
h.bendaoud
Messages postés
21
Date d'inscription
vendredi 27 mars 2015
Statut
Membre
Dernière intervention
10 avril 2015
30 mars 2015 à 16:11
30 mars 2015 à 16:11
Merci ccm81
j'ai du mal a comprendre ce que t'as fait mais je vais me pencher dessus.
juste une petit question je fais comment pour modifier les colonnes ? à place de la colonne "D" je marque "F" ou il faut que je change d'autre chose dans les lignes ?
j'ai du mal a comprendre ce que t'as fait mais je vais me pencher dessus.
juste une petit question je fais comment pour modifier les colonnes ? à place de la colonne "D" je marque "F" ou il faut que je change d'autre chose dans les lignes ?
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
30 mars 2015 à 16:15
30 mars 2015 à 16:15
juste une petit question je fais comment pour modifier les colonnes ? à place de la colonne "D" je marque "F"
Oui
Oui
h.bendaoud
Messages postés
21
Date d'inscription
vendredi 27 mars 2015
Statut
Membre
Dernière intervention
10 avril 2015
30 mars 2015 à 16:17
30 mars 2015 à 16:17
ça fonctionne Merci beaucoup ccm81
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
Modifié par ccm81 le 30/03/2015 à 16:18
Modifié par ccm81 le 30/03/2015 à 16:18
Si tu as beaucoup de lignes, ajoutes ceci pour inhiber la maj de la feuille pendant l'exécution
Après les déclarations de variables
Application.ScreenUpdating = False
Avant End
Application.ScreenUpdating = True
Après les déclarations de variables
Application.ScreenUpdating = False
Avant End
Application.ScreenUpdating = True
h.bendaoud
Messages postés
21
Date d'inscription
vendredi 27 mars 2015
Statut
Membre
Dernière intervention
10 avril 2015
30 mars 2015 à 16:20
30 mars 2015 à 16:20
Oui, il y a pour le moment 700 lignes d'accord j'ajoute ca
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
30 mars 2015 à 16:23
30 mars 2015 à 16:23
Si c'est fini, merci de mettre le sujet à Résolu (en haut à droite de ton premier message)
Bonne fin de journée
Bonne fin de journée
h.bendaoud
Messages postés
21
Date d'inscription
vendredi 27 mars 2015
Statut
Membre
Dernière intervention
10 avril 2015
31 mars 2015 à 09:07
31 mars 2015 à 09:07
Bonjour ccm81,
J'essaye de comprendre le code que tu m'as envoyé hier mais j'ai un peu de mal
pourrais-tu m'aider en mettant des commentaires à coté des lignes stp ?
J'essaye de comprendre le code que tu m'as envoyé hier mais j'ai un peu de mal
pourrais-tu m'aider en mettant des commentaires à coté des lignes stp ?
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
3 avril 2015 à 16:09
3 avril 2015 à 16:09
Que veux tu dire par surbrillance
Si c'est caractère gras
Range(coCod & lili & ":" & coSta & lili).Font.Bold = True
Cdlmnt
Si c'est caractère gras
Range(coCod & lili & ":" & coSta & lili).Font.Bold = True
Cdlmnt
31 mars 2015 à 15:53
Bon après midi également
3 avril 2015 à 12:00
Pourrait-tu m'indiquer comment appliquer une règle de surbrillance à la place de la couleur du texte.
Merci d'avance
Cordialement