Récuperation de données d'un classeur fermé

toc toc

XLDnaute Nouveau
Bonjour à tous, ;)

Je dispose d'un classeur Excel appelé "BDD.xls", ce classeur répertorie le nom des fichiers présents dans mon dossier "C:\blabla" sous forme de liste.

A partir des noms de fichier de cette liste je veux afficher dans la collone d'à coté le contenue des cellules A1, O13, E6 présents dans chacuns de ces fichiers. Et le tout sans ouvrir les fichiers bien sur :p. Voici la tête que ça devrait avoir :



Pour récupérer les données d'un classeur fermé j'utilise ce bout de code :

Code:
Sub extractionValeurCelluleClasseurFerme()
    Dim Source As ADODB.Connection
    Dim Rst As ADODB.Recordset
    Dim ADOCommand As ADODB.Command
    Dim Fichier As String, Cellule As String, Feuille As String
    
    'Adresse de la cellule contenant la donnée à récupérer
    Cellule = "B3:B3"
      
    Feuille = "Feuil1$" 
    Fichier = "C:\blabla\fichier.xls"
             
    Set Source = New ADODB.Connection
    Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
                
    Set ADOCommand = New ADODB.Command
    With ADOCommand
        .ActiveConnection = Source
        .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
    End With
    
                  
    Set Rst = New ADODB.Recordset
    Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
                  
    Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
     
    Range("A2").CopyFromRecordset Rst
          
            
    Rst.Close
    Source.Close
    Set Source = Nothing
    Set Rst = Nothing
    Set ADOCommand = Nothing
End Sub


Mais ce code n'est pas vraiment très approprié pour ce que je veux faire :

- Le chemin du fichier doit être spécifié en entier alors que dans mon cas les noms du fichiers changeraient tout le temps (vu que des fichiers pourraient être ajoutés ou supprimés) donc je verrais plus un truc du genre "C:\blabla\" & [cellule] & ".xls" mais mes connaissances en Vb n'étant pas au top, ça bloque...

- Ce code m'affiche le résultat dans la colonne A2, or je voudrais plutôt que les 3 données s'affichent dans la colonne à coté (comme sur l'image) et en face du nom du fichier correspondant.


Ca parait compliqué à comprendre, donc si vous avez des questions j'y répondrais volontier :)

Merci de bien vouloir m'aider.
 
Dernière édition:

michel_m

XLDnaute Accro
Re : Récuperation de données d'un classeur fermé

Salut Toc toc

a mon avis, vu le peu de cellule à récupérer on pourrait passer par cette macroXL4 sans avoir à déclencher ADO avec N requete car tes cellules sont un peu partout ==> usine à gaz

Je viens de tester cette macro chez moi :

Code:
Option Explicit
Const chemin As String = "d:\documents" 'a adapter
Const ligdep As Byte = 2 'ligne de départ à adapter

Sub extraireavecXL4()
Dim nbre As Long, lig As Long, cptr As Long
Dim fichier As String

nbre = Application.CountA(Range("A2:A10000"))

lig = ligdep
Application.ScreenUpdating = False
For cptr = 1 To nbre
    fichier = Cells(lig, 1) & ".xls"
    'appel macroXL4 dite de "Walkenbach"
    Cells(lig, 2) = ExecuteExcel4Macro("'" & chemin & "\[" & fichier & "]Feuil1'!R1C1") 'A1
    Cells(lig + 1, 2) = ExecuteExcel4Macro("'" & chemin & "\[" & fichier & "]Feuil1'!R13C15") 'O13
    Cells(lig + 2, 2) = ExecuteExcel4Macro("'" & chemin & "\[" & fichier & "]Feuil1'!R6C5") 'E6
    lig = lig + 3
Next
End Sub
en espèrant que...
 

toc toc

XLDnaute Nouveau
Re : Récuperation de données d'un classeur fermé

Merci de m'avoir répondu Michel. :)

Après test de ton code ça me demande quand même d'ouvrir les fichiers pour ajouter chaque contenu de cellules.


Etrange :(.

EDIT : Désolé, j'avais intervertis une valeur R et C ^^".
Par contre au lieu de m'afficher les valeurs des cellules, ça m'affiche des 0.


Le problème viendrais d'où ?
 
Dernière édition:

michel_m

XLDnaute Accro
Re : Récuperation de données d'un classeur fermé

re,

j'avais testé chez moi avec 3 ou4 fichiers sans problème et je viens de ré-essayer après ton message "edit": no problems

donc le pb vient de toi: regarde si tu as bien traduit l'adresse des cellules, l'orthographe de ta syntaxe,etc.
 

toc toc

XLDnaute Nouveau
Re : Récuperation de données d'un classeur fermé

Rhaaa !! Qu'est ce que je suis tarte ma parole, j'avais zapé que j'avais renommé mes Feuil1.

C'est bon ça marche :p
Un grand merci à toi et à ce forum vraiment très actif et sympathique ^^.
 

Discussions similaires

Statistiques des forums

Discussions
312 273
Messages
2 086 701
Membres
103 374
dernier inscrit
damned42