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
|
Sub RecuperationDonnees()
Dim Valeur
'1er argument le chemin complet
'2ème argument le nom du classeur avec son extension
'3ème argument le nom de la feuille cible
'et 4ème argument la cellule cible
Valeur = RecupValeur("C:\Mon Dossier\", "Classeur.xls", "Feuil1", "C1")
MsgBox Valeur
End Sub
Function RecupValeur(Chemin As String, _
NomClasseur As String, _
NomFeuille As String, _
Cellule As String)
Dim Arg As String
'vérifie le chemin
If Right(Chemin, 1) <> "\" Then Chemin = Chemin & "\"
'si c'est une plage, affiche un message et fin de procédure
If InStr(Cellule, ":") Then
MsgBox "Une seule cellule en argument", , "Cellule unique."
Exit Function
End If
'ignore l'erreur si la plage est déjà en référence R1C1
On Error Resume Next
'transforme la référence en style R1C1
Cellule = Range(Cellule).Address(, , xlR1C1)
'construit l'argument
Arg = "'" & Chemin & "[" & NomClasseur & "]" & NomFeuille & "'!" & Cellule
'passe la valeur à la fonction
RecupValeur = Application.ExecuteExcel4Macro(Arg)
End Function |
Partager