Supprimer doublons et cellules vides

carlos33 Messages postés 72 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 15 juin 2010 - 6 mai 2010 à 16:14
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 octobre 2011 - 7 mai 2010 à 15:07
Bonjour,

Sur Excel, dans une colonne, j'ai plusieurs valeurs dans chaque cellule. Exemple : en 1,1,1,cellule vide, 2,2,3,3,3,3,cellule vide.

Je veux obtenir dans la colonne 2 sur chaque ligne 1,2,3,etc... sans cellule vide ni doublon;

Merci d'avance !

2 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
6 mai 2010 à 16:32
0
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 octobre 2011
7 mai 2010 à 15:07
Salut,

je ne suis pa un cador en VBA mais j'ai un code que j'avais bricolé il y qq tps.

Il te suffit de rajouter en code la copie de ta colonne A en B et tu travaille les doublons sur la B.


Sub suprDoub()
Macellule = InputBox("Veuillez saisir l'adresse de la 1ere cellule à comparer - Ne pas prendre l'entête de colonne") 'Récupère l'adresse de la cellule dans une variable MaCellule
Range(Macellule).Select 'Sélectionne la cellule indiquée
ActiveCell.CurrentRegion.Sort Key1:=Range(Macellule), Order1:=xlAscending, Header:=xlYes 'T rie le tableau sur cette celule
donnee1 = ActiveCell 'mémorise le contenu de la cellule en cours et l'affecte à donnee1
ActiveCell.Offset(1, 0).Select 'descend d'une ligne
While ActiveCell <> "" 'tant que la cellule n'est pas vide
If ActiveCell = donnee1 Then 'vérifie si le contenu de la cellule en cours est égal à donnee1
ActiveCell.Delete 'si oui, supprime la cellule
ActiveCell.Offset(-1, 0).Select 'remonte d'une ligne
donnee1 = ActiveCell 'mémorise à nouveau le contenu de la cellule
ActiveCell.Offset(1, 0).Select 'descend d'une ligne
Else
donnee1 = ActiveCell 'mémorise le contenu de la cellule en cours de la ligne suivante et l'affecte à donnee1
ActiveCell.Offset(1, 0).Select 'descend d'une ligne
End If
Wend
End sub

Bon courage !!
0
Rejoignez-nous