Bonjour,
dans un classeur j'ai plusieurs feuilles dont une nommée "SC" et une autre nommée "metric". La feuille "SC", dès qu'elle est sélectionnée, fait apparaitre un UserForm. La feuille "metric" sert pour synthétiser les données pour un tableau de bord. Pour cela les données sont traitées avec une macro. La macro allant chercher les données dans "SC" j'ai mis en place une variable 'macrobloc' boolean. Si elle a la valeur true alors lors de l'activation de "SC" le UserForm ne s'affiche pas.
Tout fonctionnait bien durant plusieurs mois et depuis hier:
_ soit j'ai droit au message "erreur de compilation. Nom ambigüe détecté" lorsque je vire "Public macrobloc as boolean";
_ soit 'macrobloc' prend la bonne la bonne valeur dans ma macro de tableau de bord mais dès que la feuille "SC" est selectionné ma variable n'est pas prise en compte.
pour la feuille "SC" j'ai cela comme code:
et dans la macro pour le tableau de bord, dans le module "certif" j'ai cela:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'Option Explicit Public macrobloc As Boolean Private Sub Worksheet_Activate() If macrobloc = True Then Exit Sub End If On Error Resume Next Sheets("SupplyChain").Select Selection.End(xlUp).Select ActiveSheet.ShowAllData FormRecherche.Show End Sub
Au niveau des Variables Locales je vois bien 'macrobloc' qui passe à True puis lors de la sélection de "SC" la variable n'existe plus.
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 Option Explicit Public macrobloc As Boolean Sub metrix_certif() ' macro pour préparer les données afin de faire un metric sur les certificats disponibles par client ' déclaration ' nettoyage de la feuille Sheets("metrix certif").Select Cells.Select Selection.Delete Shift:=xlUp ' on bloque l userform macrobloc = True ' suppression des filtre sur la feuille SupplyChain si besoin On Error Resume Next Sheets("SupplyChain").Select ... ...
A quel niveau ai-je fais une boulette s'il vous plait?
Merci pour votre aide.
Partager