OVH Cloud OVH Cloud

Aide sur VBA

2 réponses
Avatar
Alexandre
Bonjour,
je cherche la ligne de code VBA qui me permettrait d'aller piocher la valeur
d'une cellule d'un classeur qui n'est pas ouvert, sans l'ouvrir à l'écran,
en indiquant son chemin d'accès.
Merci d'avance

2 réponses

Avatar
papou
Bonjour
Exemple à adapter (macro TestGetValue) :
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


"Alexandre" a écrit dans le message de
news: 41fb4527$0$28955$
Bonjour,
je cherche la ligne de code VBA qui me permettrait d'aller piocher la
valeur d'une cellule d'un classeur qui n'est pas ouvert, sans l'ouvrir à
l'écran, en indiquant son chemin d'accès.
Merci d'avance



Avatar
Alexandre
Merci !!
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:

Bonjour
Exemple à adapter (macro TestGetValue) :
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


"Alexandre" a écrit dans le message de
news: 41fb4527$0$28955$
Bonjour,
je cherche la ligne de code VBA qui me permettrait d'aller piocher la
valeur d'une cellule d'un classeur qui n'est pas ouvert, sans l'ouvrir à
l'écran, en indiquant son chemin d'accès.
Merci d'avance