comparaison entre deux liste

M

MARION

Guest
Bonjour le forum.
un petit soucis, j'ai deux listes en a6: a400 et l'autre en b6:b400
je voudrais avec une macro mettre en colonne C les codes de la colonne A qui ne sont pas en colonne B
Exemple:
A B C
riri roro popo
toto riri
popo toto
roro
merci de votre aide.
J'ai un autre petit problème, je n'arrive plus a mettre des pieces jointe, avant il n'y avait pas de problème .
merci d'avance
a+ Marion
 
F

Franck

Guest
Salut

Essaye cela devrait fonctionner

Sub Macro1()


Range("A6").Select
For i = 1 To 400
valcherche = ActiveCell.Value
Range("b6").Select
For j = 1 To 400
If ActiveCell.Value = valcherche Then
GoTo suite
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Next
Range("c6").Select
While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Range("A1").Select
Wend
ActiveCell.Value = valcherche
suite:
adresse = 6 + i
Range("a" & adresse).Select
Next
Range("A6").Select
End Sub

Je t'envoie le fichier correspondant zippé et dont le nom ne comporte pas d'espace vide (peut à l'origine de tes pbs de fichier joint)

A+

Franck
 

Pièces jointes

  • colonne.zip
    5.5 KB · Affichages: 44
  • colonne.zip
    5.5 KB · Affichages: 44
  • colonne.zip
    5.5 KB · Affichages: 45
E

Eric C

Guest
Bonjour le forum
Bonjour Marion & Franck

Pour le confort visuel car ici tu "jongles" avec 800 cellules, il est judicieux d'ajouter au départ de la boucle :
Application.ScreenUpdating = False
Et surtout de rétablir en fin de macro
Application.ScreenUpdating = True

Bon ouikand à toutes & à tous

@ ++ Eric C
 
O

omicron

Guest
Bonjour Marion, Frank et Eric

J'arrive un peu après la bataille, mais voici en pièce jointe un code assez paramétrable, permettant de répondre à la question....

Il est composé de deux parties
- Un générateur de jeu d'essais (Facultatif)
- Un détecteur de singletons (Problème posé)

=====================================================
Private Sub CommandButton1_Click()

'Références des zones utilisées. Peuvent être adaptées sous réserve de deux conditions
'Les zones A/B/C ne peuvent s'étaler que sur une colonne
'La zone C doit avoir le même nombre de lignes que la Zone A
Set RngColA = Range("A6:A400") 'Zone A noms à rechercher
Set RngColB = Range("B6:B400") 'Zone B noms de référence
Set RngColC = Range("C6:C400") 'Zone C noms recherchés ne correspondant pas à un nom de référence

'Désactivation de l'affichage
Application.ScreenUpdating = False

'Copie cellules Zone A dans cellules Zone C
RngColA.Copy Destination:=RngColC

'Effacement des cellules Zone A ayant une cellule à contenu équivalent dans zone B
For Each Celc In RngColC
For Each CelB In RngColB
If CelB = "" Then Exit For
If Celc = CelB Then
Celc.Value = ""
Exit For
End If
Next CelB
Next Celc

'Tri des résultats dans Zone C
RngColC.Sort Key1:=RngColC.Cells(1), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

'Effacement des doublons dans Zone C
For i = 2 To RngColC.Rows.Count
If RngColC.Cells(i) = RngColC.Cells(i - 1) Then RngColC.Cells(i).Value = ""
Next i

'Tri des résultats dans zone C pour éliminer les cellules vides intermédiaires
RngColC.Sort Key1:=RngColC.Cells(1), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

'Réactivation de l'affichage
Application.ScreenUpdating = True

End Sub

Private Sub CommandButton2_Click()

'Les zones A/B/C sont redéfinies ici pour éviter la dispersion du code
Set RngColA = Range("A6:A400") 'Zone A noms à rechercher
Set RngColB = Range("B6:B400") 'Zone B noms de référence
Set RngColC = Range("C6:C400") 'Zone C noms recherchés ne correspondant pas à un nom de référence
Set RngColI = Union(RngColA, RngColB) 'Zone à initialiser

'Désactivation de l'affichage
Application.ScreenUpdating = False

'Génération aléatoire d'un nombre de 0 à 1000
For Each Cel In RngColI
Cel.Value = Int(Rnd * 1000)
Next Cel

'Effacement du contenu de la zone C
RngColC.ClearContents

'Réactivation de l'affichage
Application.ScreenUpdating = True

End Sub

=====================================================

Bon week-end à tous.

Omicron.
 

Pièces jointes

  • CopieSingleton.zip
    19.8 KB · Affichages: 44

Discussions similaires

Réponses
5
Affichages
446
Compte Supprimé 979
C

Statistiques des forums

Discussions
313 928
Messages
2 103 631
Membres
108 739
dernier inscrit
titoooo428