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

  • Initiateur de la discussion Initiateur de la discussion toc toc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 😛. 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:
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...
 
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:
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.
 
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 😛
Un grand merci à toi et à ce forum vraiment très actif et sympathique ^^.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
223
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
817
Retour