[VBA EXCEL]Récupérer valeurs d'une colonne sans doublons
3 réponses
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...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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...
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" <Paflolo@discussions.microsoft.com> a écrit dans le message de
news: D8618703-FA29-4335-8A2C-B209D29EBE81@microsoft.com...
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...
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...
JB
Bonjour,
Solution1:Extrait sans doublons et trie dès la saisie
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
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...
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
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...
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
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...
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...
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" <Paflolo@discussions.microsoft.com> a écrit dans le message de
news: D8618703-FA29-4335-8A2C-B209D29EBE81@microsoft.com...
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...
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...