Bonjour A tous,
je suis un nouvel utilisateur du code VBA. Je souhaite faire une recherche V avec un chemin dynamique et sur des fichiers fermés.
Il est assez simple de faire cela avec la fonction indirect mais lorsque le fichier est fermé la valeur ne s'affiche pas et j'ai un code erreur.
J'ai trouvé ce code qui permet de créer une fonction qui contournerait ce problème sauf que celle-ci ne donne rien. Le fichier doit quand même étre ouvert pour afficher la valeur. Pourriez vous m'aidez svp ?
Voici la solution apportée par @SilkyRoad mais qui ne fonctionne pas chez moi
Vous pouvez ensuite insérer ce type de formule dans une cellule :
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 Function LireCellule_ClasseurFerme( _ Chemin As String, _ Fichier As String, _ Feuille As String, _ Cellule As Variant) As Variant Application.Volatile Dim Source As Object, Rst As Object, ADOCommand As Object Dim Cible As String Feuille = Feuille & "$" Cible = Cellule.Address(0, 0, xlA1, 0) & ":" & _ Cellule.Address(0, 0, xlA1, 0) Set Source = CreateObject("ADODB.Connection") Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Chemin & "\" & Fichier & _ ";Extended Properties=""Excel 8.0;HDR=No;"";" Set ADOCommand = CreateObject("ADODB.Command") With ADOCommand .ActiveConnection = Source .CommandText = "SELECT * FROM [" & Feuille & Cible & "]" End With Set Rst = CreateObject("ADODB.Recordset") '1 = adOpenKeyset, 3 = adLockOptimistic Rst.Open ADOCommand, , 1, 3 Set Rst = Source.Execute("[" & Feuille & Cible & "]") LireCellule_ClasseurFerme = Rst(0).Value Rst.Close Source.Close Set Source = Nothing Set Rst = Nothing Set ADOCommand = Nothing End Function
Code formule : Sélectionner tout - Visualiser dans une fenêtre à part =LireCellule_ClasseurFerme(A1;A2;A3;G7)
A1 correspond au chemin :
C:\Documents and Settings\mimi\dossier
A2 correspond au nom du classeur :
ClasseurY.xls
A3 correspond au nom de la feuille :
Feuil1
G7 correspond à la cellule qui doit être lue dans le classeur fermé.
Partager