Fonction ValeurObtenue = ExecuteExcel4Macro(Arg)

JeffdeBruges

XLDnaute Nouveau
Bonjour, j'ai trouvé chez Walkenbach une macro pour récupérer des valeurs dans un classeur sans l'ouvrir. Le code est le suivant :

Private Function ObtenirValeur(chemin, fichier, feuille, ref)

'retrouve une valeur dans un classeur fermé
Dim Arg As String

's'assure de l'existence du fichier
If Right(chemin, 1) <> "\" Then chemin = chemin & "\"
If Dir(chemin & fichier) = "" Then
ValeurObtenue = "Fichier non trouvé"
Exit Function
End If

'créé l'argument
Arg = "'" & chemin & "[" & fichier & "]" & feuille & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)

'exécute une macro xlm
ValeurObtenue = ExecuteExcel4Macro(Arg)

End Function


Sub ObtenirValeur2()

p = "C:\DOSSIER"
f = "CLASSEUR.xls"
s = "FEUILLE"
' Application.ScreenUpdating = False
For r = 1 To 29
For C = 1 To 5
a = Cells(r, C).Address
Cells(r, C) = ObtenirValeur(p, f, s, a)
Next C
Next r
Application.ScreenUpdating = True

End Sub

Question : comment inscrire les résultats obtenus dans la feuille du classeur qui contient la macro ??? En pas à pas je vois bien que les valeurs sont lues sur le classeur fermé.

Si vous testez cette macro, modifiez les valeurs dans Sub ObtenirValeur2() pour qu'elles correspondent à des dossiers et fichiers existants sur votre machine.

p = "C:\DOSSIER\CLASSEUR"
f = "CLASSEUR.xls"
s = "FEUILLE"

Par avance merci pour toute indication.
 

JeffdeBruges

XLDnaute Nouveau
Re : Fonction ValeurObtenue = ExecuteExcel4Macro(Arg)

Merci pour la réponse, c'est bien le code Walkenbach dont je disposais.
Ma question demeure : comment inscrire les résultats obtenus dans la feuille de calcul active ???
Merci pour toute suggestion.


myDearFriend! à dit:
Bonjour

Tu peux jeter un oeil sur le fichier que j'avais joint dans le fil https://www.excel-downloads.com/thr...r-dans-une-macro-les-valeurs-dun-autre.21964/
(fil issu des archives du forum XLD).
Dans ce fichier, une façon de récupérer les valeurs de classeurs fermés et ayant pour base ce code de John Walkenbach.

Cordialement,
 

JeffdeBruges

XLDnaute Nouveau
Re : Fonction ValeurObtenue = ExecuteExcel4Macro(Arg)

Tout va bien, le code complet pour inscrire dans feuille est sur le site Walk.
Merci encore.

myDearFriend! à dit:
Bonjour

Tu peux jeter un oeil sur le fichier que j'avais joint dans le fil https://www.excel-downloads.com/thr...r-dans-une-macro-les-valeurs-dun-autre.21964/
(fil issu des archives du forum XLD).
Dans ce fichier, une façon de récupérer les valeurs de classeurs fermés et ayant pour base ce code de John Walkenbach.

Cordialement,
 

myDearFriend!

XLDnaute Barbatruc
Re : Fonction ValeurObtenue = ExecuteExcel4Macro(Arg)

Bonjour JeffdeBruges, le Forum,

Etant donné que le fichier dont je te parlais mettait en pratique le code de John Walkenbach et insérait dans la feuille active la valeur d'une cellule choisie, du classeur choisi, sous le chemin choisi et sans l'ouvrir, j'avais imaginé que ça pouvait être une suggestion répondant à la lettre à ta demande !!!
Visiblement, je me suis trompé, désolé pour le dérangement...

Bonne journée.
 

JeffdeBruges

XLDnaute Nouveau
Re : Fonction ValeurObtenue = ExecuteExcel4Macro(Arg)

Il n'y a absolument pas de quoi être désolé !!! En plus tu es efficace et sympathique puisque tu m'aides gracieusement.

Je suis très reconnaissant pour tes indications car grâce à celles-ci j'ai pu constater que la traduction française de l'ouvrage de Walkenbach contient une erreur : on passe de "ObtenirValeur" à "ValeurObtenue" alors que la version originale (sur le lien internet que tu as indiqué) utilise GetValue partout. Voilà voilà.

Donc merci merci merci merci :)


myDearFriend! à dit:
Bonjour JeffdeBruges, le Forum,

Etant donné que le fichier dont je te parlais mettait en pratique le code de John Walkenbach et insérait dans la feuille active la valeur d'une cellule choisie, du classeur choisi, sous le chemin choisi et sans l'ouvrir, j'avais imaginé que ça pouvait être une suggestion répondant à la lettre à ta demande !!!
Visiblement, je me suis trompé, désolé pour le dérangement...

Bonne journée.
 

Discussions similaires

Réponses
7
Affichages
329

Statistiques des forums

Discussions
312 298
Messages
2 086 983
Membres
103 419
dernier inscrit
mk29