Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA EXCEL]Récupérer valeurs d'une colonne sans doublons

3 réponses
Avatar
Paflolo
Bonjour,
je suis débutant, j'ai posté un message l'autre jour où on m'a répondu de
faire tout seul, ce que j'ai fait en m'aidant des autres posts.
Mais là je suis réellement dans l'impasse.
Pour commencer mon programme, j'ai besoin de lister les numéros de la 1ere
colonne A.
Je m'explique :
dans la colonne A, j'ai des numéros, chaque numéro peut être répété
plusieurs fois. J'aimerais récupérer chaque numéro une seule fois, et les
copier en colonne dans une autre feuille.
Exemple:
100
100
100
100
101
101
102
103
104
104
105
105
105
Et j'aimerais inscrire dans une colonne d'une autre feuille:
100
101
102
103
104
105
Donc en triant les numéros mais en ne répétant pas les doublons.
J'ai vu plusieurs posts sur éliminer les doublons ou autre, mais je n'ai pas
réussi à me débrouiller.
Merci de votre aide...

3 réponses

Avatar
Daniel
Bonjour.
Tu peux utiliser un filtre élaboré pour faire une extraction sans doublon ou
utiliser le code suivant (à adapter) :

Sub test()
Dim c As Range, Plage As Range, Ctr As Long
Sheets("Feuil1").Activate
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ctr = 1
For Each c In Plage
If Not IsNumeric(Application.Match(c.Value,
Sheets("Feuil2").Range("A:A"), 0)) _
Or Ctr = 1 Then
Sheets("Feuil2").Range("A" & Ctr).Value = c.Value
Ctr = Ctr + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Paflolo" a écrit dans le message de
news:
Bonjour,
je suis débutant, j'ai posté un message l'autre jour où on m'a répondu de
faire tout seul, ce que j'ai fait en m'aidant des autres posts.
Mais là je suis réellement dans l'impasse.
Pour commencer mon programme, j'ai besoin de lister les numéros de la 1ere
colonne A.
Je m'explique :
dans la colonne A, j'ai des numéros, chaque numéro peut être répété
plusieurs fois. J'aimerais récupérer chaque numéro une seule fois, et les
copier en colonne dans une autre feuille.
Exemple:
100
100
100
100
101
101
102
103
104
104
105
105
105
Et j'aimerais inscrire dans une colonne d'une autre feuille:
100
101
102
103
104
105
Donc en triant les numéros mais en ne répétant pas les doublons.
J'ai vu plusieurs posts sur éliminer les doublons ou autre, mais je n'ai
pas
réussi à me débrouiller.
Merci de votre aide...


Avatar
JB
Bonjour,

Solution1:Extrait sans doublons et trie dès la saisie

http://cjoint.com/?kmmKlCxAOj

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
[A1:A1000].AdvancedFilter Action:=xlFilterCopy, _
copyToRange:=Sheets("Extract").[A1], unique:=True
Sheets("Extract").[A2:A1000].Sort key1:=Sheets("Extract").[A2]
End If
End Sub

Solution2: Formule

=SI(ESTNUM(PETITE.VALEUR(SI(EQUIV(Ch;Ch;0)=LIGNE(INDIRECT("1:"&LIGNES(C h)));Ch);LIGNE(INDIRECT("1:"&LIGNES(Ch)))));
PETITE.VALEUR(SI(EQUIV(Ch;Ch;0)=LIGNE(INDIRECT("1:"&LIGNES(Ch)));Ch);LIGN E(INDIRECT("1:"&LIGNES(Ch))));0)

Cordialement JB


Bonjour,
je suis débutant, j'ai posté un message l'autre jour où on m'a ré pondu de
faire tout seul, ce que j'ai fait en m'aidant des autres posts.
Mais là je suis réellement dans l'impasse.
Pour commencer mon programme, j'ai besoin de lister les numéros de la 1 ere
colonne A.
Je m'explique :
dans la colonne A, j'ai des numéros, chaque numéro peut être rép été
plusieurs fois. J'aimerais récupérer chaque numéro une seule fois, et les
copier en colonne dans une autre feuille.
Exemple:
100
100
100
100
101
101
102
103
104
104
105
105
105
Et j'aimerais inscrire dans une colonne d'une autre feuille:
100
101
102
103
104
105
Donc en triant les numéros mais en ne répétant pas les doublons.
J'ai vu plusieurs posts sur éliminer les doublons ou autre, mais je n'a i pas
réussi à me débrouiller.
Merci de votre aide...


Avatar
Laurent
Bonjour.

D'abord faire une copie dans une autre feuille de la colonne A et trier en
croissant.
Ensuite passer cette macro qui supprime les lignes doublons :

Range("A1").Select ' selection cellule A1
donnee1 = ActiveCell ' On décalre la cellule active (A1) en
tant que donnee1
ActiveCell.Offset(1, 0).Select ' On descend d'une cellule et on la
selectionne
While ActiveCell <> "" ' Tant que la celulle n'est pas vide
If ActiveCell = donnee1 Then ' Si la celulle sélectionnée est = à
donnee1 (donc doublon)...
ActiveCell.EntireRow.Delete ' ... on supprime la ligne...
ActiveCell.Offset(-1, 0).Select ' ...et on remonte d'une cellule ...
donnee1 = ActiveCell ' ... pour re-déclarer la valeur...
ActiveCell.Offset(1, 0).Select ' et redescendre à la celulle suivante
Else ' sinon (si la valeur est
différente de donnee1)
donnee1 = ActiveCell ' on déclare la nouvelle valeur
ActiveCell.Offset(1, 0).Select ' on descend...
End If
Wend ' et la boucle se fait tant que
la cellule n'est pas vide.

Voila j'espère que ça pourra aider !

Bye

Laurent

"Paflolo" a écrit dans le message de
news:
Bonjour,
je suis débutant, j'ai posté un message l'autre jour où on m'a répondu de
faire tout seul, ce que j'ai fait en m'aidant des autres posts.
Mais là je suis réellement dans l'impasse.
Pour commencer mon programme, j'ai besoin de lister les numéros de la 1ere
colonne A.
Je m'explique :
dans la colonne A, j'ai des numéros, chaque numéro peut être répété
plusieurs fois. J'aimerais récupérer chaque numéro une seule fois, et les
copier en colonne dans une autre feuille.
Exemple:
100
100
100
100
101
101
102
103
104
104
105
105
105
Et j'aimerais inscrire dans une colonne d'une autre feuille:
100
101
102
103
104
105
Donc en triant les numéros mais en ne répétant pas les doublons.
J'ai vu plusieurs posts sur éliminer les doublons ou autre, mais je n'ai
pas
réussi à me débrouiller.
Merci de votre aide...