Bonjour à tous,
Je vais essayer de vous expliquer mon problème en étant le plus synthétique possible, n'hésitez pas à me dire si ce n'est pas clair.
J'ai placé en PJ un extrait de mon fichier Excel pour que ce soit plus compréhensible.
Tout d'abord la première feuille "Atteinte Norme" contient les différents métiers avec les normes à atteindre, ..., le pourcentage de personnes atteignant la norme (valeurs que je souhaite importer dans la seconde feuille).
La seconde feuille 'Synthèse Atteinte Norme' contient les différents métiers de mon périmètre dans la première colonne, le nombre de personne dans la deuxième et les différents indicateurs dans les colonnes suivantes.
Ces métiers ne sont pas fixes il change selon la sélection de l'utilisateur.
Pour chaque métier apparaissant dans "Synthèse Atteinte Norme", je souhaite importer la valeur (pourcentage de personnes atteignant la norme) de l'indicateur correspondant (situé dans "Atteinte norme").
J'ai essayé de procéder en faisant des pointeurs mais je ne pense pas que ce soit la solution optimale ... vu que j'ai 18 indicateurs. Je me retrouve avec 4 pointeurs pour importer les valeurs d'un indicateur.
Voici l'extrait de mon code qui ne marche pas d'ailleurs ...
Si vous voyez une alternative à ces pointeurs qui serait plus simple je suis preneur.
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 Sub pointeur() Dim pointeur As Range Dim pointeur2 As Range Dim pointeur3 As Range Dim pointeur4 As Range Dim ligne As Integer 'positionnement du pointeur Set pointeur = Sheets("Atteinte Norme").Range("A2") Set pointeur3 = Sheets("Synthèse Atteinte Norme").Range("A3") Set pointeur4 = Sheets("Synthèse Atteinte Norme").Range("C3") 'tant que c'est pas la derniere ligne des métiers de "Atteinte Norme" While pointeur.Row < pointeur.SpecialCells(xlCellTypeLastCell).Row Set pointeur3 = Sheets("Synthèse Atteinte Norme").Range("A3") Set pointeur = pointeur.Offset(4, 0) Set pointeur2 = pointeur.Offset(3, 2) 'tant que c'est pas la derniere ligne des métiers de "Synthèse Atteinte Norme" While pointeur3.Row < pointeur3.SpecialCells(xlCellTypeLastCell).Row If pointeur.Value = pointeur3.Value Then pointeur4.Value = pointeur2.Value Set pointeur4 = pointeur4.Offset(1, 0) Else Set pointeur3 = pointeur3.Offset(1, 0) End If Wend Wend End Sub
Je re précise que les métiers affichés sont dynamiques. Si la sélection du périmètre change .. il se peut que des métiers ne soit plus dans se périmètre .. l'ordre se modifie.
Merci par avance,
Cordialement
Partager