Aide sur un code de comparaison

Résolu/Fermé
mateos - 24 mars 2016 à 10:55
 mateos - 24 mars 2016 à 17:04
Bonjour tt le monde

J'ai besoin de votre aide svp !! je vais vous expliquer la problematique et ma partie du code et si quelqu'un peut m'aider ca serai génial .

j'ai une feuille excel avec 4 colonnes :

colonne A = user (user1,user2,user3......)
colonne B = fonctionnalitées ( fonc1, fonc2, fonc3.....)

colonne C = user (user1,user2,user3......)
colonne D = fonctionnalitées ( fonc1, fonc2, fonc3.....)
je veux comparer dans la meme feuille les colonne A,B et C,D a la fois sachant que les colonne C et D sont la version nouvelle des données de A et B et que les user de la colonnes C peuvent changer d'ordre et de fonctionnalitées

le résultat est stockee dand 3 colonne = les user ( colonne F ) et les fonctionnalitées_supprimées (colonne G ) et les nouvelles_fonctionnalitées ( colonne H )

Voila le code que j'ai cree il marche bien sauf que pour les nouvelles fonctionalites il me les affiche pas toutes pour chaque user il me montre que une nouvelle fonctionnalitee ou il doit me montrer toutes les nouvelles fonctionnalitees voila le code aidez moi a trouver une solution SVP merci d'avance



Private Sub CommandButton2_Click()
Dim rngCell As Range
For Each rngCell In Range("A2:A20000")
If WorksheetFunction.CountIf(Range("C2:C20000"), rngCell) > 0 Then
Range("F" & Rows.Count).End(xlUp).Offset(1) = rngCell
Range("F" & Rows.Count).End(xlUp).Offset(0, 1) = rngCell.Offset(0, 1).Value
Range("F" & Rows.Count).End(xlUp).Offset(0, 2) = Application.WorksheetFunction.VLookup(rngCell.Value, Range("C2:D20000"), 2, 0)
ElseIf (rngCell <> "") Then

Range("F" & Rows.Count).End(xlUp).Offset(1) = rngCell
Range("F" & Rows.Count).End(xlUp).Offset(0, 1) = rngCell.Offset(0, 1).Value

End If
Next

For Each rngCell In Range("C2:C20000")
If (WorksheetFunction.CountIf(Range("A2:A20000"), rngCell) = 0 And rngCell <> "") Then
Range("F" & Rows.Count).End(xlUp).Offset(1) = rngCell
Range("F" & Rows.Count).End(xlUp).Offset(0, 2) = rngCell.Offset(0, 1).Value
End If
Next


End Sub
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 24/03/2016 à 15:26
assez frustré pour tes 9 lignes alors que tu en évoquait >20000

Basé sur la rapidité de traitement
http://www.cjoint.com/c/FCyoyTQMsQt

 Michel
1
un grand merci a toi michel , vraiment je sais pas comment te remercier , merciiiii bcp :D
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
24 mars 2016 à 11:15
Bonjour

on base sur 20 000 Lignes ?

pour ^tre dans le réel
Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le raccourci par un clic droit sur le lien proposé dans le message de réponse

Dans l’attente


0
merci pour votre reponse voila le lien ;

http://www.cjoint.com/c/FCykqRM76Rv
0
20000 ligne parceque j'ai une grande base de donnes lool et comme meme j'ai peur que ca serai pas suffisant hhhh
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
24 mars 2016 à 11:32
bien reçu

c'est normal qu'on ait un user en V2 qui n'existe pas en V1 (user4 par ex)?

tu m'as envoyé un exemple: je ne recommence un boulot bénévole si ton exemple ne reflète pas la réalité
0
oui on peut avoir des usres en v2 qui n existe pas dans v1 mais ils sont stockes deja comme un nouveau user et sa fonctionnalite en tant qu'une nouvelle fonctionnalite en ce qui concerne ca y a pas de probleme le probleme sont les nouvelles fonctionnalites
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > mateos
24 mars 2016 à 12:13
OK, j'essaierai d'y bosser cet après-midi mais sans garantie
0