Bonjour,
Je mets en place une sécurité assez complexe, basée sur 3 tables Id et un Id connecté.
Je voudrais autoriser un accès à tous les Id des table 2 et 3 et à l'Id connecté (s'il fait parti de la table 1).
Voici mon code (qui fonctionne pour autorisé un Id d'une seule table)
Je dois avoir un pb avec find, mais je maitrise pas bienCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Dim NomChoisi As String Application.DisplayAlerts = False NomChoisi = "Car Cae" UsAbg = Sheets("Données").[B2] 'Id connecté With Sheets("Données") 'Si NomChoisi appartient aux tables 2 ou 3 ou est égal à UsAbg --- la table 2 est en P5:P46, la table 3 est en V5:V22 Set Cel = Union(Range("TbAT[At Abg]"), Range("TbAll[All Abg]"), UsAbg).Find(NomChoisi, Union(Range("B2"), Range("P5"), Range("V5"))) If Not Cel Is Nothing Then '---------- Procédure si Ok Set Cel = Nothing '------------Suite Sécurité si Ko Else Call MsgBox("SECURITE" ...) End With Application.DisplayAlerts = True
Est-ce que qq'1 peut m'aider svp.
J'ai déjà trouvé une explication / erreur, car j'ai utilisé une variable (UsAbg) dans mon Union. Donc j'ai corrigé mon code par
si je m'arrête là et que je fais Cel.Select, mes 3 zones sont bien sélectionnées, mais dès que j'ajoute le find, j'ai, le motif d'erreur est : "Incompatibilité de type".Code:Set Cel= Union(Range("TbAT[At Abg]"), Range("TbAll[All Abg]"), Range("B2"))
J'ai essayé avec Dim Cel as Variant, mais cela ne change rien.
Merci de votre aide