comparer des colonnes

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

  • liste.xls
    23 KB · Affichages: 73
  • liste.xls
    23 KB · Affichages: 77
  • liste.xls
    23 KB · Affichages: 72
V

Vériland

Guest
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...
 
J

joel

Guest
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
 
V

vincent

Guest
Bonsoir

Je ne sais pas si il y à plus simple mais le fichier ci joint fonctionne (à priori)
,j'ai fait quelques test il faut voir si cela fonctionne chez toi

@+Vincent
 

Pièces jointes

  • liste.zip
    9.9 KB · Affichages: 29
  • liste.zip
    9.9 KB · Affichages: 27
  • liste.zip
    9.9 KB · Affichages: 27
V

Vériland

Guest
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

  • Liste_VL.zip
    11.5 KB · Affichages: 30
V

Vériland

Guest
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
 
V

Vériland

Guest
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
 
J

joel

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
312 428
Messages
2 088 314
Membres
103 812
dernier inscrit
mehdifr