Récupération donnés et ADO

lio

XLDnaute Occasionnel
Bonjour le forum :)

En cherchant dans les archives du forum, j'ai trouvé une macro qui me permet de récupérer un plage de cellules dans un fichier fermé. Ca marchait impec jusqu'au moment où je n'écrit plus en dur mon chemin d'accés !

Voici la macro et en rouge les modifs apportées qui me mettent la pagaille :angry:

'récupération de données dans un classeur fermé
'(méthode 'classique' par établissement d'une liaison temporaire)
'(c'est aussi la technique habituellement conseillée pour essayer
'de récupérer des données d'un classeur endommagé)

Sub Test()

Dim Y As String
Dim Z As String

Y = LstBox1.Column(9, i)
Z = Y & '.xls'


GetValuesFromAClosedWorkbook 'C:\\Documents and Settings\\lio\\Bureau\\Dossier SCE', 'Z', 'Feuil1', 'A1:G50'
End Sub

Sub GetValuesFromAClosedWorkbook(fPath As String, _
fName As String, sName, cellRange As String)
'Ron De Bruin, mpep
'le paramètre 'cellRange' doit désigner
'*une* plage de cellules *contigües*
With ActiveSheet.Range(cellRange)
.Formula = '='' & fPath & '\\[' & fName & ']' _
& sName & ''!' & cellRange
.Value = .Value
End With
End Sub

J'ai l'impression que cette macro n'accepte pas un nom de fichier à partir d'une variable...

PS: pas de pb sur i, mon code est dans une boucle sur la sélection de ma lstbox1.


Merci pour votre aide et des pistes éventuelles.

Edition: mes barres dans mon chemin d'accès ne s'affiche pas... mais bon en réalité elles sont là !

Message édité par: lio, à: 04/06/2006 18:52
 

MichelXld

XLDnaute Barbatruc
bonjour Lio

La macro que tu as trouvé n'utilise pas la methode ADO mais crée des formules de liaison dans la feuille , puis remplace les formules par leur valeur

Je n'ai pas testé mais il y a un probleme avec la variable Z :
Remplace 'Z' par Z : enleve les guillemets pour que la lettre soit considérée comme une variable


Sub Test()
Dim Y As String
Dim Z As String
Y = LstBox1.Column(9, i)
Z = Y & '.xls'
GetValuesFromAClosedWorkbook 'C:Documents and Settingslionel novionBureauDossier SCEDevis', Z, 'Feuil1', 'A1:G50'
End Sub


bonne soiree
MichelXld
 

MichelXld

XLDnaute Barbatruc
rebonsoir Lio

je viens d'essayer la macro de Ron de Bruin et cela fonctionne parfaitement chez moi


Sub Test()
Dim Y As String
Dim Z As String

Y = 'nomClasseur'
Z = Y & '.xls'

GetValuesFromAClosedWorkbook 'C:\\\\\\\\Documents and Settings\\\\\\\\michel\\\\\\\\', Z, 'Feuil1', 'A1:G50'
End Sub


Sub GetValuesFromAClosedWorkbook(fPath As String, _
fName As String, sName, cellRange As String)
'Ron De Bruin, mpep
'le paramètre 'cellRange' doit désigner
'*une* plage de cellules *contigües*
With ActiveSheet.Range(cellRange)
.Formula = '='' & fPath & '[' & fName & ']' _
& sName & ''!' & cellRange
.Value = .Value
End With
End Sub



bonne soiree
MichelXld

Message édité par: michelxld, à: 04/06/2006 19:16
 

lio

XLDnaute Occasionnel
Re,

Merci, je viens de tester sans les doubles barres et à la fin sans barre du tout et il semblerait que ça marche :whistle:

Je vais tester sur mon usine à gaz et je te tiendrais au courant. En tous cas merci beaucoup pour toutes tes contributions sur le forum.

Edit. Arff, les doubles barres ont disparue ...

Message édité par: lio, à: 04/06/2006 19:32
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 019
dernier inscrit
BenKmc