comparer des colonnes

  • Initiateur de la discussion Initiateur de la discussion joel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

joel

Guest
bonjour à tous et merci pour les renseignements.

voila dans un fichier j'ai un liste complete des membres, une liste des inscrits à une activité.
Je crée une liste contenant les pas encore inscrit qui me sert a remplir une liste box.

Cette liste se fait à l'aide d'une macro qui compare la colonne A avec la colonne D cela marche parfaitement sauf quand j'ai deux ou plusieur fois le même nom avec des prénoms differents.

et il posible d'adapter a macro pour quelle compare les colonnes a/b avec les colonnes d/e

Car je ne veux pas mettre une clé unique pour le nom et prenom


Merci encore pour tous les précieux renseignements que j'ai déjà pu consulter sur ce forum
 

Pièces jointes

Bonsoir Joel et toi le Forum,

C'est bizarre çà mais il y a des noms que je connais dans ton prog...lol

Bon ben c'est pas pour cela que je passe mais moi j'ai pas bien compris pourquoi tu voulais comparer plusieurs colonnes...ne serait-il pas plus simple de comparer deux colonnes ?

En fait il n'est pas compliqué de rassembler deux colonnes pour n'en faire qu'une...par exemple pour rassembler les valeurs de A et C tu peux inscrire dans la colonne C :

=A1&" "&B1

çà c'est le plus simple...mais il y à bien sûr d'autres possibilité...

C'est pour cette raison que je te propose cette macro lorsque tu as deux colonnes à comparer...

Option Explicit
'Vériland
'http://www.excel-downloads.com/html/French/forum/messages/1_50232_50232.htm
Sub Comparaison()
Dim DonneeA As Range, DonneeB As Range
Dim Ligne As Long
Dim Affiche As Variant
'Référence les colonnes A et B (à adapter)
Set DonneeA = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
Set DonneeB = Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
'Inscrit en colonne C
'les valeurs de la colonne B
'qui figurent dans la colonne A
Ligne = 2
Cells(1, 3).Value = "DOUBLE"
For Each Affiche In DonneeB
If Application.CountIf(DonneeA, Affiche.Value) = 1 Then 'mettre 0 pour l'inverse
Cells(Ligne, 3).Value = Affiche.Value
Ligne = Ligne + 1
End If
Next
End Sub


son principe est simple on inscrit en colonne C les valeurs de la colonne B qui figurent dans la colonne A...
N'est-ce pas plus simple de cette manière
Question.gif


A+Veriland.gif


PS : Macro à copier depuis le forum auquel cas tu risques d'avoir les attributs gras du post dedans...
 
oui c'est vrai j'aurai pus le comprimer mais ça ne fais que 24 ko

je veux justement eviter de mettre mes noms et prenons dans une colonne, car après je suis obligé de les séparer

mais merçi pour la solution.

je l'ai déjà fais mais ça ne me satifait pas

c'est vrai que je suis difficille !!!!!!!!!!!!



joel
 
Bonjour Joël, Vincent et toi le Forum

Bon ben moi je reste sur mon exemple où je pense qu' il est plus simple de comparer 2 colonnes aux lieux d'en comparer 4

en Colonne J j'ai mis =A3&" "&B3 (donc on rassemble les données de A et B)
en Colonne K j'ai mis =G3&" "&H3 (donc on rassemble les données de G et H)

ce qui permet de travailler sur deux colonnes...ces données tu peux les placer n'importe où sur la feuille, tu peux même masquer ces colonnes, enfin il y a plusieurs possibilités...En fait cela te permet de garder tes colonnes noms et prénoms...

A+Veriland.gif


PS : Euh Vincent...ton fichier ne fonctionne pas...
 

Pièces jointes

re...

Bon toujours pareille il me fait :

Erreur d'éxécution '9' l'indice n'appartient pas à la sélection...

y'a kekchose qui m'échappe dans la procédure...Bon ben j'regarderais plus tard là c'est la soupe...lol

A suivre...

A+Veriland.gif
 
Me revoiloù...

Ouarf j'ai mon message qui n'est pas parti...bah c'est pas grave puisqu'il est toujours en mémoire avec PostVL...et hop !...bouton récupérer...lol

Bon ben j'ai regardé le principe c'est pas mal comme exemple...
smiles_83.gif


Par contre chez moi il bloquait à :

Set nom = rngB.Find(cell, , xlValue, xlWhole, xlByColumns, xlPrevious)

et je n'ai pas bien compris pourquoi tu avais mis autant d'arguments dans le find...
smiley_115.gif


Donc finalement j'ai rectifié la procédure avec çà :

Set nom = rngB.Find(cell)

et çà marche...lol

en fait dans ta macro la réference de la colonne est faite avec Set rngB = Range(Cells(3, 4), Cells(Rows.Count, 4).End(xlUp)), et le cell correspondant à la valeur de la cellule à comparer n'a pas besoin d'être à nouveau positionné au même endroit...

Enfin je connais un peu les caprices d'Excel 97 qui à besoin de précisions...c'est pour cette raison que je comprends aussi pourquoi il y a un Sheets("feuil1").Select en début de procédure...chez moi il est superflue...

Voili voiloù le pourquoi du comment

Mais c'est encore bien d'avoir des personnes qui utilisent 97...comme il y en a plusieurs qui tournent avec cette version tu leur viens en aide...
smiley_806.gif


Par contre XP c'est pas un peu fort pour lui ???...ça va il tourne bien ???
smiley_387.gif


Bonne programmation

A+Veriland.gif


PS : euh Joël...c'est bon tu peux utiliser le fichier de Vincent, il répond précisément à ta question de départ...mais j'suis presque sûr que tu l'utilises déjà...lol
 
Salut à vous tous et excuser mon retard pour les remerciments

effectivement je me suis servie de l'exemple de vincent qui fonctionne parfaitement sur ma machine excel 2000 et nt4
c'est tout à fait la macro qu'il me fallait car je ne voulais pas alourdir mon fichier en regroupent mes colonnes

merci encore pour la réponse , je pense que je reviendrai bientôt avec un autre petit probleme (deconection d'objet) je prépare mon message pour etre le plus clair possible
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
429
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
503
Réponses
4
Affichages
138
Réponses
0
Affichages
132
Réponses
22
Affichages
806
Retour