Bonjour le forum,
Après avoir cherché un bon petit moment, je m'en remet encore une fois à la sagesse des membres de ce forum .
Donc, j'ai encore un petit problème avec un bout de code que je dois implémenté. En gros, j'ai une feuille "BDD" contenant des données de pointage avec une colonne nom salarié et une feuille salarié référencent tous les salarié déjà dans la base de donnée. A chaque fois que des nouvelles données sont importé (d'un fichier .xml pour précision), un test est effectué pour savoir si l'employé est déjà dans la feuille Salarié. Et c'est la le problème, les génies qui ont entré le nom des salariés dans le fichier xml ont utilisé des intitulés (M. ; Mr ; Mme ; Melle) et certaine personne, d'un fichier à un autre peuvent avoir un intitulé différent.
Par exemple :
Fichier A :
M. Toto Albert
Fichier B :
Mr Toto Albert
Cela pose un problème puisque lors d'analyse des données et la génération des différents graphiques, la personne sera scindé en deux (moins d'heures sup donc moins de paye ), également, deux entrées seront créer dans la feuille salarié. Je vous met le code qui recherche les nouveaux salarié pour que vous puissiez visualiser et en vient à la question : Comment faire pour que Excel ne prennent pas en compte les x premiers caractères ?
Merci pour vos réponses,
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 Public tab_salarie() As Variant Public tab_bdd() As Variant Public compteur_bdd As Integer Public compteur_salarie As Integer Public Sub nouveau_salarie() Dim nbLigne_bdd As Long Dim nbLigne_salarie As Integer Dim plage_salarie As Range Dim plage_bdd As Range With Worksheets("BDD") nbLigne_bdd = .Range("A" & .Rows.Count).End(xlUp).Row End With With Worksheets("Salarie") nbLigne_salarie = .Range("A" & .Rows.Count).End(xlUp).Row End With Set plage_salarie = Worksheets("Salarie").Range(Worksheets("Salarie").Cells(1, 1), Worksheets("Salarie").Range("A1").End(xlDown).Offset(1, 0)) Set plage_bdd = Worksheets("BDD").Range(Worksheets("BDD").Cells(1, 1), Worksheets("BDD").Range("A1").End(xlDown).Offset(1, 0)) tab_salarie() = Application.Transpose(plage_salarie.Value) tab_bdd() = Application.Transpose(plage_bdd.Value) compteur_bdd = 1 boucle_bdd: Do While compteur_bdd <= nbLigne_bdd compteur_bdd = compteur_bdd + 1 If tab_bdd(compteur_bdd) = tab_bdd(compteur_bdd - 1) Then GoTo boucle_bdd End If compteur_salarie = 1 Do While compteur_salarie <= nbLigne_salarie If tab_bdd(compteur_bdd) = tab_salarie(compteur_salarie) Then GoTo boucle_bdd Else compteur_salarie = compteur_salarie + 1 'GoTo boucle_bdd End If Loop NouveauSalarie.Show Loop End Sub
Thomas
Partager