Bonjour à tous,
J'aimerais savoir si quelqu'un pouvait m'aider?
Je souhaites créer un code qui compare les données salarié du mois en cours avec le mois précèdent et sortir 1 liste
avec les nouveaux salariés.
Merci et bonne journée.
Bonjour à tous,
J'aimerais savoir si quelqu'un pouvait m'aider?
Je souhaites créer un code qui compare les données salarié du mois en cours avec le mois précèdent et sortir 1 liste
avec les nouveaux salariés.
Merci et bonne journée.
J'ai trouvé ceci mais la comparaison, ce fait que sur le nom et j'aimerais faire sur le prénom aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Sub comparaison() Dim w1 As Worksheet, w2 As Worksheet, w3 As Worksheet Dim I As Long Windows("Classeur1.xls").Activate 'Nom du classeur Set w1 = Sheets("mois_actuel") 'Feuille qui contient les effectifs Set w2 = Sheets("mois_precedent") 'Feuille qui contient l'historique des formations Set w3 = Sheets("traitement") 'Feuille qui doit faire apparaitre les personnes qui n'ont pas de formation 'Suppression des données dans la feuille traitement w3.Cells.ClearContents For I = 2 To w1.Range("a65536").End(xlUp).Row ' faire toute la colonne A If Application.WorksheetFunction.CountIf(w2.Range("a:a"), w1.Range("a" & I)) = 0 Then 'comparer si w2 et different de W1 w1.Range("a" & I & ":c" & I).Copy Destination:=w3.Range("a65536").End(xlUp).Offset(1, 0) 'copier nouvelle entité de la w1 Different en w2 sur w3 End If Next MsgBox "Comparaison terminé" End Sub
Bonjour,
Si ce n'est pas trop tard, essayez ceci (utilisation de SOMMEPROD en VBA):
Cdlt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Sub comparaison() Dim w1 As Worksheet, w2 As Worksheet, w3 As Worksheet Dim I As Long Dim Cell_A_w1 As String, Cell_B_w1 As String, Plage_A_w2 As String, Plage_B_w2 As String Windows("Classeur1.xls").Activate 'Nom du classeur Set w1 = Sheets("mois_actuel") 'Feuille qui contient les effectifs Set w2 = Sheets("mois_precedent") 'Feuille qui contient l'historique des formations Set w3 = Sheets("traitement") 'Feuille qui doit faire apparaitre les personnes qui n'ont pas de formation 'Suppression des données dans la feuille traitement w3.Cells.ClearContents DerLig_w1 = w1.Range("A" & Rows.Count).End(xlUp).Row DerLig_w2 = w2.Range("A" & Rows.Count).End(xlUp).Row Plage_A_w2 = "mois_precedent!A2:A" & DerLig_w2 Plage_B_w2 = "mois_precedent!B2:B" & DerLig_w2 For I = 2 To DerLig_w1 ' faire toute la colonne A Cell_A_w1 = "mois_actuel!A" & I Cell_B_w1 = "mois_actuel!B" & I If Application.Evaluate("=SUMPRODUCT((mois_precedent!A2:A50 =" & Cell_A_w1 & ") * (mois_precedent!B2:B50 = " & Cell_B_w1 & "))") = 0 Then 'comparer si w2 et different de W1 w1.Range("a" & I & ":c" & I).Copy Destination:=w3.Range("a65536").End(xlUp).Offset(1, 0) 'copier nouvelle entité de la w1 Different en w2 sur w3Next End If Next I w3.Select MsgBox "Comparaison terminé" Set w1 = Nothing Set w2 = Nothing Set w3 = Nothing End Sub
Bonjour,
Sur le même sujet, un billet titré Exporter les données comparées (« Matchées »)
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Bonjour et merci pour les réponses. En ce qui concerne de trouver les nouveaux salariées c'est bon. Par contre je n'arrive pas à trouver si le salarié change de nom (par exemple aprés mariage). Comment retrouver le salarié?
Bonjour,
Là, faut pas rêver, si dans 2 listes vous avez la même personne qui porte un nom différent, le meilleur logiciel et le meilleur programmeur au monde ne pourront faire un lien entre les deux s'il n'y a pas identifiant commun appliqué à cette personne.Envoyé par Marc31
Par contre je n'arrive pas à trouver si le salarié change de nom (par exemple aprés mariage). Comment retrouver le salarié?
Vous devez donc créer un N° d'identifiant attribué à chaque personne dans les 2 listes et faire les recherches non plus sur le noms et prénoms mais sur ce N°, évidemment la personne ayant changé de nom conservera le même N° .
Cdlt
Hello,
Peut-être ajouter un id unique et immuables, dans ta table, num de registre national ?
Partager