bonjour à tous,

Je suis un débutant sur VBA, j'essaie d'apprendre par moi même ..

j'essaie de créer un fichier base de données regroupant les différents fichiers excel que j'utilise tous les jours au boulot, afin d'essayer de faire une macro pour les ouvrir plus rapidement et ne pas aller les chercher dans les profondeur de l'explorateur.:

j'ai réussi à crée une base de données à 2 colonnes : nom du fichier et chemin du fichier.

le formulaire de saisie qui me sert à compléter ma base de donnée est celui de excel, jusqu’à là, sa marche.

ensuite j'ai crée un userform, avec une liste déroulante, qui se cale sur la liste "Nom" de ma base de donnée : on retrouve donc dans la liste déroulante "classeur1 , Classeur 2 etc .."
et un bouton permettant d'ouvrir le fichier sélectionné.

j'ai essayer mon bout de programme permettant d'ouvrir un autre fichier un indiquant son chemin, apriori il marche, lorsqu'il n'y a pas d'utilisation de variable dans le chemin

après , sa coince : je joins le code lié mon bouton "Ouvrir"

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
Private Sub CommandButton1_Click()
 
 
Application.ScreenUpdating = False
 
 
 
'on verifie que le secteur est dans la liste
    If Me.ComboBox1.MatchFound = False Then
    MsgBox Me.ComboBox1.Value & " est introuvable!", vbExclamation
    Me.ComboBox1.Value = ""
 
 
    Exit Sub
    End If
    variable = Me.ComboBox1.Value
 
   Call Travail
Unload selection
 
 
 
 End Sub
 
 
 
Sub Travail()
 
Dim Dossier As String, Fichier As String, Chemin As String
Dossier = "C:\test base donée\base de donnée"
Fichier = variable
Chemin = Dossier & Fichier
 
Dim Presence As Boolean
Presence = False
 
For Each w In Workbooks
If w.Name = Fichier Then Presence = True
Next w
 
If Presence = True Then
 
 
Workbooks(Fichier).Activate
Else
Workbooks.Open Filename:=Chemin
End If
End Sub
il me trouve une erreur 1004 ligne 46 "Workbooks.Open Filename:=Chemin" comme quoi la base de donnée est en lecture seul ...

et encore avec ce code la, uniquement le nom "fichier" est variable et nom le chemin .. il faudrait pouvoir trouver une combine pour qu'il soit une variable.

si quelqu'un à la patience de m'éclairer ...


merci d'avance