Lu ter tous.

Je fais appel à vous because je patine.
Le sujet n'est pas très original: une gestion de base de données avec excel.

Le contexte en premier lieu...
En fais j'ai créé deux questionnaires avec excel. Ce sont des questionnaire type qcm et question ouverte.
Ce que je veut faire, c'est extraire les infos du questionnaire, indexer le tout dans une base de données access.
Je traite les infos grâce avec des macro écrite en VB.

En fait j'ai besoin de lire dans la base de donner le numéro du dernier questionnaire pour pouvoir attribuer le numéro du prochain questionnaire de manière entièrement automatique.
Pour ce faire, je charge la base de données dans une feuille. Celle-ci est triée par ordre croissant de numéro de fiche. Je descend tout le tableau, je prend la dernière valeur de numéro de fiche, je l'incrémente de 1.
Cette valeur est entrer dans le questionnaire.
Ce que voudrais faire, c'est indiquer le chemin de la base de données au démarrage, de façon à pour continuer à utiliser le programme en changeant d'emplacement la base de données

Voila le (gros) bout de code que j'ai fait:

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
Private Sub fiche_client_Click()
'
'
' paramtrage pour entrer info dans BdD
'
 
    ' feuille à ouvrir
    '
    Sheets("BdD_tmp_client").Visible = True
    Sheets("BdD_client").Visible = True
    Sheets("fiche_client").Visible = True
 
    ' Mise en forme BdD_tmp
    '
    Sheets("BdD_tmp_client").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Selection.QueryTable.Delete
    Range("A1").Select
 
 
    ' Chargement de la BdD
    '
    Sheets("BdD_tmp_client").Activate
    Range("A1").Activate
 
    With ActiveSheet.QueryTables.add(Connection:=Array(Array( _
        "ODBC;DSN=MS Access Database;DBQ=Chemin_BdD_c." _
        ), Array( _
        "mdb;DefaultDir=G:\Service technique clients\Projet document création produit\formulaire\fiches\SQL;DriverId=25;FIL=MS Access;Max" _
        ), Array("BufferSize=2048;PageTimeout=5;")), Destination:=Range("A1"))
        .CommandText = Array( _
        "SELECT Table1.Numéro_fiche, Table1.Client, Table1.Nom_rapporteur, Table1.Type_de_machine, Table1.Domaine, Table1.Equipement_démarché, Table1.Mots_clé, Table1.Date_de_création, Table1.WT_RECID" & Chr(13) & "" & Chr(10) & "FROM Ta" _
        , "ble1 Table1" & Chr(13) & "" & Chr(10) & "ORDER BY Table1.Numéro_fiche")
        .Name = "Lancer la requête à partir de MS Access Database"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = True
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
 
 
    ' Création du numéro de fiche
    '
    Sheets("BdD_tmp_client").Select
    ActiveSheet.Range("A1").Offset(ActiveSheet.Range("A1").CurrentRegion.Rows.Count, 0).Select
    ActiveCell.Offset(0, 0) = ActiveCell.Offset(-1, 0).Value + 1
    ActiveCell.Offset(0, 0).Activate
    Selection.Copy
    Sheets("fiche_client").Select
    Range("F7").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
       SkipBlanks:=False, Transpose:=False
 
 
    ' création date
    '
    Sheets("BdD_client").Select
    Range("A1").Select
    Selection.Copy
    Sheets("fiche_client").Select
    Range("E5").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
 
    ' effacement des données temporaire
    '
    Sheets("BdD_tmp_client").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Selection.QueryTable.Delete
    Range("A1").Select
 
    ' mise en forme du tableau
    '
    Sheets("BdD_client").Select
    Range("B3,L5").Select
    Selection.ClearContents
 
    ' fermer les feuilles
    '
    Sheets("Démarage").Visible = False
    Sheets("fiche_idée").Visible = False
    Sheets("BdD_tmp_client").Visible = False
    Sheets("BdD_client").Visible = False
    Sheets("BdD_tmp_idée").Visible = False
    Sheets("BdD_idée").Visible = False
    Sheets("menu").Visible = False
 
    ' feuille active
    '
    Sheets("fiche_client").Activate
    Range("N3").Activate
 
    Unload Me
 
End Sub

Pour créer le chemin j'ai trouver ce bout de code sur internénet

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
Private Sub Chemin_BdD_idée_Click()
 
Dim Fenetre As String
 
Fenetre = Application.GetOpenFilename _
        (FileFilter:="Tous les fichiers (*.*),*.* ", _
         Title:="Sélectionnez un fichier")
 
   Chemin_BdD_i = Left(Fenetre, InStrRev(Fenetre, "\", -1))
 
      Démarage.Hide
 
   MsgBox ("Le Chemin a bien été modifié")
 
 
   Démarage.Show
 
End Sub
Et je remplace le chemin dans la première fonction par Chemin_BdD_i. Et miracle: ... ça marche pas.
La base de données s'appelle fiche_SQL.mdb
Quand je la selectionne avec la fenêtre et que je cherche à charger la base de données dans une feuille, j'ai un message d'erreur qui me dis que la base de donnée Chemin.BdD_i.mdb est introuvable.


PLEASE HELP

Merci de votre attention