Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lecture d'une cellule dans 1 autre fichier Excel

5 réponses
Avatar
Stéphane L.
Bonjour,

Est-il possible de lire 1 donnée dans 1 cellule d'1 fichier Excel à partir
du VBA d'un autre fichier Excel sans avoir à l'ouvrir ?

Exemple :
Je suis dans mon fichier Classeur1.xls.
Je clique sur 1 bouton qui doit lance 1 procédure dans VBA Excel.
Cette procédure doit regarder 1 valeur qui se trouve dans le fichier
Classeur2.xls.
A part ouvrir le classeur avec workbooks("classeur2.xls").open et
macellule=activesheet.cells(1,1) puis activeworkbook.close,
existe-t-il 1 autre méthode sans avoir à ouvrir le fichier, un peu comme
avec les liaisons dans 1 feuille ?

--
Cordialement,

Stéphane L

5 réponses

Avatar
enirakenna
Bonjour,

pouvez-vous m'aidez ? je n'arrive pas à envoyer un nouveau message,
la fenêtre message ne prend rien dans Publier dans un groupe de discussion (il n'y a pas de choix dans le menu proposé)

Merci
Avatar
papou
Bonjour Stéphane
Avec le code exemple ci-dessous (je ne suis pas sûr de l'auteur d'origine)
Modifie le code en fonction de ce que tu veux.
Cordialement
Pascal
Private Function GetValue(path, file, sheet, ref) As String
'path: The drive and path to the closed file (e.g., "d:files")
'file: The workbook name (e.g., "99budget.xls")
'sheet: The worksheet name (e.g., "Sheet1")
'ref: The cell reference (e.g., "C4")

Dim arg As String

On Error GoTo HandleErr
'Make sure the file exists
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If

'Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)

'Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)

ExitHere:
Exit Function

' Bloc de gestion d'erreurs ajouté par le complément de gestionnaire
d'erreurs. NE PAS MODIFIER ce bloc de code.
' Dernière mise à jour du gestionnaire d'erreurs automatique le 10-24-2002
13:03:25 'Gestionnaire d'erreurs:$$D-24-2002 'Gestionnaire
d'erreurs:$$T:03:25
HandleErr:
Select Case Err.Number
Case 13
MsgBox "La feuille " & sheet & " n'existe pas !"
End
Case Else
MsgBox "Erreur " & Err.Number & ": " & Err.Description,
vbCritical, "Module1.GetValue" 'Gestionnaire d'erreurs:$$N=Module1.GetValue
End Select
' Fin du bloc du traitement d'erreurs.
End Function


Sub TestGetValue()

Dim p As String
Dim f As String
Dim s As String
Dim a As String

p = "D:Mes DocumentsPascalExcel"
f = "Test.xls"
s = "Feuil15"
a = "A1"

MsgBox GetValue(p, f, s, a)

End Sub


"Stéphane L." a écrit dans le message de
news:
Bonjour,

Est-il possible de lire 1 donnée dans 1 cellule d'1 fichier Excel à partir
du VBA d'un autre fichier Excel sans avoir à l'ouvrir ?

Exemple :
Je suis dans mon fichier Classeur1.xls.
Je clique sur 1 bouton qui doit lance 1 procédure dans VBA Excel.
Cette procédure doit regarder 1 valeur qui se trouve dans le fichier
Classeur2.xls.
A part ouvrir le classeur avec workbooks("classeur2.xls").open et
macellule¬tivesheet.cells(1,1) puis activeworkbook.close,
existe-t-il 1 autre méthode sans avoir à ouvrir le fichier, un peu comme
avec les liaisons dans 1 feuille ?

--
Cordialement,

Stéphane L




Avatar
michdenis
Bonjour Stéphane,

En supposant que tu ais donné un "NOM" (plage nommée) à ta cellule dans ton fichier fermé, tu pourrais utilisé ceci :

Denis.xls = Nom Du classeur
denis = Nom attribué à la cellule.

LeNom = Application.ExecuteExcel4Macro("'C:excelDenis.xls'!denis")


Salutations!


"Stéphane L." a écrit dans le message de news:
Bonjour,

Est-il possible de lire 1 donnée dans 1 cellule d'1 fichier Excel à partir
du VBA d'un autre fichier Excel sans avoir à l'ouvrir ?

Exemple :
Je suis dans mon fichier Classeur1.xls.
Je clique sur 1 bouton qui doit lance 1 procédure dans VBA Excel.
Cette procédure doit regarder 1 valeur qui se trouve dans le fichier
Classeur2.xls.
A part ouvrir le classeur avec workbooks("classeur2.xls").open et
macellule¬tivesheet.cells(1,1) puis activeworkbook.close,
existe-t-il 1 autre méthode sans avoir à ouvrir le fichier, un peu comme
avec les liaisons dans 1 feuille ?

--
Cordialement,

Stéphane L
Avatar
Stéphane L.
Merci Denis

"michdenis" a écrit dans le message de
news:%
Bonjour Stéphane,

En supposant que tu ais donné un "NOM" (plage nommée) à ta cellule dans
ton fichier fermé, tu pourrais utilisé ceci :


Denis.xls = Nom Du classeur
denis = Nom attribué à la cellule.

LeNom = Application.ExecuteExcel4Macro("'C:excelDenis.xls'!denis")


Salutations!


"Stéphane L." a écrit dans le message de
news:

Bonjour,

Est-il possible de lire 1 donnée dans 1 cellule d'1 fichier Excel à partir
du VBA d'un autre fichier Excel sans avoir à l'ouvrir ?

Exemple :
Je suis dans mon fichier Classeur1.xls.
Je clique sur 1 bouton qui doit lance 1 procédure dans VBA Excel.
Cette procédure doit regarder 1 valeur qui se trouve dans le fichier
Classeur2.xls.
A part ouvrir le classeur avec workbooks("classeur2.xls").open et
macellule¬tivesheet.cells(1,1) puis activeworkbook.close,
existe-t-il 1 autre méthode sans avoir à ouvrir le fichier, un peu comme
avec les liaisons dans 1 feuille ?

--
Cordialement,

Stéphane L





Avatar
Stéphane L.
Merci Papou

"papou" a écrit dans le message de
news:e%
Bonjour Stéphane
Avec le code exemple ci-dessous (je ne suis pas sûr de l'auteur d'origine)
Modifie le code en fonction de ce que tu veux.
Cordialement
Pascal
Private Function GetValue(path, file, sheet, ref) As String
'path: The drive and path to the closed file (e.g., "d:files")
'file: The workbook name (e.g., "99budget.xls")
'sheet: The worksheet name (e.g., "Sheet1")
'ref: The cell reference (e.g., "C4")

Dim arg As String

On Error GoTo HandleErr
'Make sure the file exists
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If

'Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)

'Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)

ExitHere:
Exit Function

' Bloc de gestion d'erreurs ajouté par le complément de gestionnaire
d'erreurs. NE PAS MODIFIER ce bloc de code.
' Dernière mise à jour du gestionnaire d'erreurs automatique le 10-24-2002
13:03:25 'Gestionnaire d'erreurs:$$D-24-2002 'Gestionnaire
d'erreurs:$$T:03:25
HandleErr:
Select Case Err.Number
Case 13
MsgBox "La feuille " & sheet & " n'existe pas !"
End
Case Else
MsgBox "Erreur " & Err.Number & ": " & Err.Description,
vbCritical, "Module1.GetValue" 'Gestionnaire
d'erreurs:$$N=Module1.GetValue

End Select
' Fin du bloc du traitement d'erreurs.
End Function


Sub TestGetValue()

Dim p As String
Dim f As String
Dim s As String
Dim a As String

p = "D:Mes DocumentsPascalExcel"
f = "Test.xls"
s = "Feuil15"
a = "A1"

MsgBox GetValue(p, f, s, a)

End Sub


"Stéphane L." a écrit dans le message de
news:
Bonjour,

Est-il possible de lire 1 donnée dans 1 cellule d'1 fichier Excel à
partir


du VBA d'un autre fichier Excel sans avoir à l'ouvrir ?

Exemple :
Je suis dans mon fichier Classeur1.xls.
Je clique sur 1 bouton qui doit lance 1 procédure dans VBA Excel.
Cette procédure doit regarder 1 valeur qui se trouve dans le fichier
Classeur2.xls.
A part ouvrir le classeur avec workbooks("classeur2.xls").open et
macellule¬tivesheet.cells(1,1) puis activeworkbook.close,
existe-t-il 1 autre méthode sans avoir à ouvrir le fichier, un peu comme
avec les liaisons dans 1 feuille ?

--
Cordialement,

Stéphane L