Bonjour, Je viens de créer une macro me permettant d'extraire puis de mettre en forme la liste de nos clients pour pouvoir les insérer dans le carnet d'adresse du logiciel de notre transporteur.

Pour créer cette macro, j'ai pour l'essentiel enregistré pas à pas mes actions sur Excel.
J'ai fait mes tests en local comme en réseau, et tout marche ok, ou presque.
Lorsque j'exécute la macro sur le réseau (en clair, le fichier excel et la base de donnée Access du logiciel de gestion commerciale sont sur un serveur) je me heurte à une question à chaque fois que la macro veut ouvrir la base de donnée pour en extraire une table.

"Voulez-vous vous connecter à 'Chemin vers le fichier.mdb?"

De plus, si la base de données est déjà ouverte et utilisée par des collaborateurs qui saisissent par exemple de nouvelles factures, cette première question se double d'une fenêtre "Propriétés des liaisons de données".
Cette fenêtre peut se présenter différemment selon la version d'excel de la machine qui exécute la macro.

J'ai 2 questions à ce sujet:
1 - Dans l'onglet "Propriétés avancées" de cette deuxième fenêtre, on propose différentes "autorisations d'accès".
  • Read
  • ReadWirte
  • Share Deny None,
  • Share Deny Read
  • Share Deny Write (c'est l'option sélectionnée par défaut)
Pour la sécurité de la base de données et la tranquillité des utilisateurs, y-a-t-il une option plus pertinente que les autres?

2 - Y aurait-il un moyen dans ma macro d'éviter à l'utilisateur de devoir répondre à ces questions à répétition?



Ci-dessous un bout du code de ma macro
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
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
        "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=Z:\05 Compta\API\APISOFT\GEST_EXP\WAM\Gestc." _
        , _
        "mdb;Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Pass" _
        , _
        "word="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Tran" _
        , _
        "sactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:" _
        , _
        "Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex " _
        , "Data=False;Jet OLEDB:Bypass UserInfo Validation=False"), Destination:=Range _
        ("$A$1")).QueryTable
        .CommandType = xlCmdTable
        .CommandText = Array("Client")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .SourceDataFile = _
        "Z:\05 Compta\API\APISOFT\GEST_EXP\WAM\Gestc.mdb"
        '.ListObject.DisplayName = "Tableau_Gestc"
        .Refresh BackgroundQuery:=False
    End With
Merci d'avance de vos réponses éclairées