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

recup de données sur un fichier situé sur rep au dessus

2 réponses
Avatar
gilles
bonjour,
j'ai passé le message suivant en mars, auquel Robert et JB m'ont répondu

j'utilise cette proc trouvée sur la FAQ

elle fonctionne nickel tant que je recupère des donnees d'un fichier
situé dans le même repertoire, mais si je tente de récupérer depuis un rep
situé juste le niveau au dessus. ça marche pas bien sur
ex: mon fichier( ou est placée cette proc) est dans un S/repertoire de
D et
je veux recuperer les donnees de "fiche info affaire", situé sur
directement sur D
Comment puis je le modifier en ce sens?

'Sub test() 'ça marche si les fichiers sont dans le même rep
'GetValuesFromAClosedWorkbook ThisWorkbook.Path, "fiche info affaire.xls",
"Fiche", "B8:H85"

'End Sub

Sub GetValuesFromAClosedWorkbook(fPath As String, _
fName As String, sName, cellRange As String)
.Formula = "='" & fPath & "\[" & fName & "]" & sName & "'!" & cellRange
.Value = .Value
End With
End Sub


ROBERT m'a proposé ce code adapté :

Essaie ceci :

Sub test()
For i = Len(ThisWorkbook.Path) To 1 Step -1
If Mid(ThisWorkbook.Path, i, 1) = "\" Then Exit For
Next
Chemin = Left(ThisWorkbook.Path, i - 1) ' avec -1 pour enlever le \
GetValuesFromAClosedWorkbook Chemin , "fiche info affaire.xls", "Fiche",
"B8:H85"
End Sub

Je suis resté quelques mois absent
En me repenchant dessus, j'ai le message suivant:

Erreur de compilation
type d'argument By Ref incompatible

ça coince sur chemin

Qulqu'un voit-il ce qui ne va pas ?

Merci
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...

2 réponses

Avatar
Ange Ounis
Si tu utilises Excel 2000 ou + récent, une petite fonction VBA peut peut-être te
dépanner :

'''''''''''''''''''''
Function DossierPrécédent(Chemin As String)
Dim i As Long, S As String
For i = 0 To UBound(Split(Chemin, "")) - 1
S = S & Split(Chemin, "")(i) & ""
Next
DossierPrécédent = Left(S, Len(S) - 1)
End Function
'''''''''''''''''''''

Ensuite, dans ta procédure de récupération des données :

Sub test()
GetValuesFromAClosedWorkbook _
DossierPrécédent(ThisWorkbook.Path), _
"fiche info affaire.xls", _
"Fiche", _
"B8:H85"
End Sub

----------
Ange Ounis
----------

bonjour,
j'ai passé le message suivant en mars, auquel Robert et JB m'ont répondu

j'utilise cette proc trouvée sur la FAQ

elle fonctionne nickel tant que je recupère des donnees d'un fichier
situé dans le même repertoire, mais si je tente de récupérer depuis un rep
situé juste le niveau au dessus. ça marche pas bien sur
ex: mon fichier( ou est placée cette proc) est dans un S/repertoire de
D et
je veux recuperer les donnees de "fiche info affaire", situé sur
directement sur D
Comment puis je le modifier en ce sens?

'Sub test() 'ça marche si les fichiers sont dans le même rep
'GetValuesFromAClosedWorkbook ThisWorkbook.Path, "fiche info affaire.xls",
"Fiche", "B8:H85"

'End Sub

Sub GetValuesFromAClosedWorkbook(fPath As String, _
fName As String, sName, cellRange As String)
..Formula = "='" & fPath & "[" & fName & "]" & sName & "'!" & cellRange
..Value = .Value
End With
End Sub


ROBERT m'a proposé ce code adapté :

Essaie ceci :

Sub test()
For i = Len(ThisWorkbook.Path) To 1 Step -1
If Mid(ThisWorkbook.Path, i, 1) = "" Then Exit For
Next
Chemin = Left(ThisWorkbook.Path, i - 1) ' avec -1 pour enlever le
GetValuesFromAClosedWorkbook Chemin , "fiche info affaire.xls", "Fiche",
"B8:H85"
End Sub

Je suis resté quelques mois absent
En me repenchant dessus, j'ai le message suivant:

Erreur de compilation
type d'argument By Ref incompatible

ça coince sur chemin

Qulqu'un voit-il ce qui ne va pas ?

Merci


Avatar
gilles
Un grand MERCI Ange
ça faisait un moment que je tatonnais avec d'autres codes mais à chaque fois
j'obtenais des messages d'erreur
merci encore
à+
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...



Si tu utilises Excel 2000 ou + récent, une petite fonction VBA peut peut-être te
dépanner :

'''''''''''''''''''''
Function DossierPrécédent(Chemin As String)
Dim i As Long, S As String
For i = 0 To UBound(Split(Chemin, "")) - 1
S = S & Split(Chemin, "")(i) & ""
Next
DossierPrécédent = Left(S, Len(S) - 1)
End Function
'''''''''''''''''''''

Ensuite, dans ta procédure de récupération des données :

Sub test()
GetValuesFromAClosedWorkbook _
DossierPrécédent(ThisWorkbook.Path), _
"fiche info affaire.xls", _
"Fiche", _
"B8:H85"
End Sub

----------
Ange Ounis
----------

bonjour,
j'ai passé le message suivant en mars, auquel Robert et JB m'ont répondu

j'utilise cette proc trouvée sur la FAQ

elle fonctionne nickel tant que je recupère des donnees d'un fichier
situé dans le même repertoire, mais si je tente de récupérer depuis un rep
situé juste le niveau au dessus. ça marche pas bien sur
ex: mon fichier( ou est placée cette proc) est dans un S/repertoire de
D et
je veux recuperer les donnees de "fiche info affaire", situé sur
directement sur D
Comment puis je le modifier en ce sens?

'Sub test() 'ça marche si les fichiers sont dans le même rep
'GetValuesFromAClosedWorkbook ThisWorkbook.Path, "fiche info affaire.xls",
"Fiche", "B8:H85"

'End Sub

Sub GetValuesFromAClosedWorkbook(fPath As String, _
fName As String, sName, cellRange As String)
..Formula = "='" & fPath & "[" & fName & "]" & sName & "'!" & cellRange
..Value = .Value
End With
End Sub


ROBERT m'a proposé ce code adapté :

Essaie ceci :

Sub test()
For i = Len(ThisWorkbook.Path) To 1 Step -1
If Mid(ThisWorkbook.Path, i, 1) = "" Then Exit For
Next
Chemin = Left(ThisWorkbook.Path, i - 1) ' avec -1 pour enlever le
GetValuesFromAClosedWorkbook Chemin , "fiche info affaire.xls", "Fiche",
"B8:H85"
End Sub

Je suis resté quelques mois absent
En me repenchant dessus, j'ai le message suivant:

Erreur de compilation
type d'argument By Ref incompatible

ça coince sur chemin

Qulqu'un voit-il ce qui ne va pas ?

Merci